Javascript 否';访问控制允许原点';标头在AJAX请求中存在错误
当我试图发送此请求时,Javascript 否';访问控制允许原点';标头在AJAX请求中存在错误,javascript,jquery,ajax,api,rest,Javascript,Jquery,Ajax,Api,Rest,当我试图发送此请求时,AJAX我收到一个错误:不存在“访问控制允许源代码”标题但在dhc chrome扩展上,当我将上述相同数据放入正文部分并发送请求时,我得到了成功响应。我在这里做错了什么吗?尝试添加标题: $.ajax({ url: 'http://test.aegi.com/rest/social/update/@ViewBag.orgId?access_token=6fWV564u7rATh8=', type: 'POST',
AJAX
我收到一个错误:不存在“访问控制允许源代码”标题
但在dhc chrome扩展上,当我将上述相同数据放入正文部分并发送请求时,我得到了成功响应。我在这里做错了什么吗?尝试添加标题:
$.ajax({
url: 'http://test.aegi.com/rest/social/update/@ViewBag.orgId?access_token=6fWV564u7rATh8=',
type: 'POST',
contentType: 'application/json',
data: [{
"message": "It's party time",
"messageType": "NEW",
"gmtTimeDate": "2014-12-21 23:59:59",
"soAccts": [{
"accountId": "74470431",
"soAccountType": "FBPAGE"
}]
}],
success: function (data) {
console.log(data);
},
error: function (error) {
console.log(error);
}
});
编辑答案:
headers: { 'Access-Control-Allow-Origin', '*' }
* in above line will allow access to all domains.
headers: { 'Access-Control-Allow-Origin', 'http://www.example.com' }
For allowing access to specific domain only.
现代浏览器禁止跨源请求,因此它们需要“访问控制允许源”响应头存在,如果不存在,则您将收到该错误 而像postman这样的chrome扩展则绕过了这一限制
若您有权访问服务器,那个么您应该在响应头中添加“access Control Allow Origin”或使用jsonp
查看CORS了解更多信息 您可以在ajax请求中使用json数据类型:“jsonp”您的应用程序是否在任何服务器上运行?或者检查html文件?我的应用程序在本地服务器上运行,api在不同的服务器上运行Access Control Allow Origin用于响应,而不是请求@kwan245所说的内容。添加标题不会有任何作用。服务器端控制可以访问它的内容。我使用post请求,jsonp使用get请求,甚至尝试了这个方法,但仍然不起作用:var headers={'Access Control Allow Origin':'*','Access Control Allow Methods':'POST,GET,OPTIONS,PUT','Content Type':'application/json','Accept':'application/json'};在ajax:headers:headers中,“Access-Control-Allow-Origin”应该放在服务器响应中,而不是请求中。好的,但是如何克服这个问题呢?我发送的json格式有什么错误吗?请求没有问题,您能更改服务器响应吗?服务器响应的请求不正确,c中有一个DHC插件当我粘贴数据时,服务器响应成功。
beforeSend: function(xhr) {
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
}