【问题标题】:Cors Issue : Consume WCF Rest Service via JQueryCors 问题:通过 JQuery 使用 WCF Rest 服务
【发布时间】:2017-02-18 11:57:17
【问题描述】:

我一直在关注这个例子

Create and Consume WCF Restful Service Using jQuery

我收到以下错误:

XMLHttpRequest 无法加载 http://localhost:48839/EmployeeService.svc/GetEmployeeDetails/。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'http://localhost:57402'。响应的 HTTP 状态代码为 404。

【问题讨论】:

    标签: jquery rest wcf cors


    【解决方案1】:

    在您的服务项目中添加 global.asax 文件并

       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();
                }
            }
    

    【讨论】:

      【解决方案2】:

      您需要通过在项目中添加新的 HttpModule 来实现 Cors 支持。 为此,只需在您的项目中使用此代码https://gist.github.com/mmorton/4113849

      【讨论】:

        【解决方案3】:

        图沙尔@,

        一个快速的谷歌搜索给了我这个: Enabling CORS header

        为了使您的调用成功,您可能必须将服务和您的 html 页面托管在同一个域中。您在端口 57402 上从 localhost 获取您的 html 页面,并且您正在尝试访问端口 48839 的服务,因此您看到了这个 CORS 问题。

        您要么必须同时托管来自同一域和端口的服务端点和 html 页面,要么必须将服务器上的访问标头列入白名单,如上述链接中所述。

        【讨论】:

        • 谢谢我也做了同样的事情。但我无法弄清楚在哪里添加标题
        • 如上面的链接中提到的,Application_BeginRequest 方法将是您可以添加的地方。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        相关资源
        最近更新 更多