繁体   English   中英

Web API 2 CORS不存在“ Access-Control-Allow-Origin”标头

[英]web api 2 CORS No 'Access-Control-Allow-Origin' header is present

嘿,我有这个网络服务,我想将一些JSON发送给:

$.ajax({
      type: "POST",
      crossDomain: true,
      dataType: 'json',
      contentType: 'application/json; charset=utf-8',
      cache: false,
      url: serviceURL + 'theQ',
      headers: {
           'Access-Control-Allow-Origin' : '*',
      },
      data: JSON.stringify({ query: sqlCC, empImg: false }),
      success: function (data) {
          var obj = jQuery.parseJSON(data);
          app.employeeData = obj[0];
      },
      error: function (xhr, status, error) {
          console.log('checker1' + xhr.responseText);
      }
});

我在Web api 2功能上安装了CORS:

[HttpPost]
[EnableCors(origins: "*", headers: "*", methods: "*")]
[Route("theQ")]
    public IHttpActionResult theQ(theQ.theQVars data)
    {
         .... code here.....
    }

但是当我尝试执行该AJAX时,我在CHROME中得到以下内容:

XMLHttpRequest无法加载http:// dev-zzzz / xxxx / Q / SELECT%20DI ---- D%20ASC / false?_ = 1454534694738 所请求的资源上没有“ Access-Control-Allow-Origin”标头。 因此,不允许访问原始站点“ http://tst-zzzz.com ”。

现在,如果我指定*允许任何错误,为什么会出现此错误?

我认为您输入的CORS错误。

Access-Control-Allow-Origin标头应该出现在远程站点上的HTTP请求响应中,而不是在请求中。

在某些情况下,浏览器还会使用OPTIONS方法发出预检请求。

飞行前请求的响应应包含

各种访问控制标头

这里阅读更多

服务器应根据您的设置添加此标头

[EnableCors(origins: "*", headers: "*", methods: "*")]

您是否已经启用了CORS支持?

尝试按此处所述在HttpConfiguration上调用enableCors()

using System.Web.Http;
namespace WebService
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // New code
            config.EnableCors();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM