【问题标题】:Cors enabled in WCF but not working on live server在 WCF 中启用了 Cors,但在实时服务器上不起作用
【发布时间】:2019-09-25 10:48:49
【问题描述】:

我正在从我的 Angular 7 应用程序向 WCF 服务端点发送发布请求。在本地主机上,命中转到 WCF 服务器,但是当我在服务器上部署 WCF 应用程序时,方法 405 不允许 Cors 预检错误显示在我的控制台中。甚至在 WCF 应用程序中也启用了 cors。

有什么问题?请帮帮我。

提前致谢。

在邮递员中,我们收到以下标题作为响应

收到邮递员响应标头

【问题讨论】:

    标签: wcf cors


    【解决方案1】:

    当我发布 WCF Restful 样式服务时,我使用以下解决方案来启用 CORS。
    将以下 global.asax 文件添加到我的 WCF 服务应用程序项目中。

    public class Global : System.Web.HttpApplication
        {
            protected void Application_BeginRequest(object sender, EventArgs e)
            {
    
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
                if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
                {
                    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST, PUT, DELETE");
    
                    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
                    HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
                    HttpContext.Current.Response.End();
                }
    
            }
    }
    

    然后我可以使用 AJAX 发送 http 资源请求,效果很好。
    我无法确定您的问题,如果您可以分享与您的解决方案相关的更多信息,我会给您一些建议。 如果有什么我可以帮忙的,请随时告诉我。

    【讨论】:

    • 嘿伙计,我使用了与您提到的相同的东西,但它在本地工作......在部署到服务器后它抛出了 CORS 的错误......说它没有 http好的状态。
    • 您是否使用 webhttpbinding 发布了服务并使用 [webget]/[webinvoke] 修饰了方法?您是否使用过其他 javascript 客户端/工具发送 http 请求来验证问题,Jquery/postman?
    • 是的,我在前端使用 Angular 7 来访问 WCF 服务上的 http 请求。
    • Angular 7 在 localhost:4200 上运行,当我尝试点击时,发生错误。
    • 如果你使用 Postman 发送请求,你能正确得到响应吗?
    猜你喜欢
    • 2012-09-03
    • 2011-02-12
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    相关资源
    最近更新 更多