【发布时间】:2017-08-30 02:32:27
【问题描述】:
我有以下函数来执行 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,"status":0,"statusText":"error"}
我在启用了 Allow-Control-Allow-Origin 扩展的 Google Chrome 中尝试了相同的请求,并且请求顺利通过,所以我相当确信这完全是我的代码没有正确配置 CORS 的问题。
我做错了什么?
【问题讨论】:
-
您要发布到 CORS 的服务器是否已启用?是否正确处理飞行前请求?
-
我相信是这样,但它可以与提到的 Chrome 扩展一起使用,所以它必须是。
-
@yitzih http方法不应该像下面
method: "POST" -
“但它可以在启用了上述 Chrome 扩展程序的情况下使用,所以它必须是” - 这与正确的结论相反......这个扩展程序规避 CORS 限制,它是在服务器不允许的情况下启用此类请求的工具。因此,您使用此扩展程序的成功请求几乎可以证明您的服务器没有正确启用它。
-
你的开发控制台告诉你什么?
标签: javascript jquery ajax cors