[英]CORS header 'Access-Control-Allow-Origin' missing but it present in the header
[英]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.