CORS POST请求可以使用普通的javascript,但为什么不使用jQuery?我正在尝试制作一个Cross Origin帖子请求,并且我使用这样的普通Javascript工作:var request = new XMLHttpRequest();var params = "action=something";request.open('POST', url, true);request.onreadystatechange = function() {if (request.readyState==4) alert("It worked!");};request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");request.setRequestHeader("Content-length", params.length);request.setRequestHeader("Connection", "close");request.send(params);但我想使用jQuery,但我无法让它工作。这就是我正在尝试的:$.ajax(url, { type:"POST", dataType:"json", data:{action:"something"}, success:function(data, textStatus, jqXHR) {alert("success");}, error: function(jqXHR, textStatus, errorThrown) {alert("failure");}});这导致失败。如果有人知道为什么jQuery不起作用,请让我们都知道。谢谢。(我正在使用jQuery 1.5.1和Firefox 4.0,我的服务器正在使用正确的Access-Control-Allow-Origin标头进行响应)
3 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
另一种可能性是设置dataType: json
导致JQuery发送Content-Type: application/json
标头。这被CORS视为非标准头,并且需要CORS预检请求。所以要尝试一些事情:
1)尝试配置服务器以发送正确的预检响应。这将是像附加头的形式Access-Control-Allow-Methods
和Access-Control-Allow-Headers
。
2)删除dataType: json
设置。JQuery应该Content-Type: application/x-www-form-urlencoded
默认请求,但只是为了确定,你可以替换dataType: json
为contentType: 'application/x-www-form-urlencoded'
添加回答
举报
0/150
提交
取消