我有以下功能来执行ajax发布请求
function POST(url, data) {
$.ajax({
'type' : "POST",
'url' : url,
'data' : data,
headers : {
'Access-Control-Request-Headers' : '*'
},
success : function(msg) {
//alert('in success');
//alert(msg);
return msg;
},
error : function (xhr, status, error) {
//alert(JSON.stringify(xhr));
return 'error';
}
});
}
该函数总是返回,并且我的CORS配置有错误。
我得到的错误总是
{ “readyState的”:0 “状态”:0 “状态文本”: “错误”}
我在谷歌浏览器中尝试了同样的请求,并启用了Allow-Control-Allow-Origin扩展程序并且请求很顺利,所以我相信我的代码没有正确配置CORS完全是个问题。
我做错了什么?
答案 0 :(得分:0)
您可以尝试使用以下方法
function POST(url, data) {
$.ajax({
method : "POST",
url : url,
data : data,
crossDomain: true,
beforeSend: function(xhrObj){
//xhrObj.setRequestHeader("Content-Type","application/json");
//xhrObj.setRequestHeader("Accept","application/json");
xhrObj.setRequestHeader("Access-Control-Allow-Headers","x-requested-with");
},
success : function(msg) {
//alert('in success');
//alert(msg);
return msg;
},
error : function (xhr, status, error) {
//alert(JSON.stringify(xhr));
return 'error';
}
});
}
如果您使用的是jquery 1.5.2+,那么您需要添加以下标题
Access-Control-Allow-Headers: x-requested-with
答案 1 :(得分:0)
您确定CORS是否接受后端的所有来源?
再见:)