【发布时间】:2015-05-14 17:24:39
【问题描述】:
当我运行它时,它出于某种原因发送了两个请求。当我删除 headers 对象时,尽管它只运行一次。为什么它与 headers 对象一起运行两次?
$.ajax({
type: "get",
headers: {
Time: time
},
url: getHost() + "/leaderboard/top?gameId=" + gameId + "&token=" + createToken([gameId, time]),
dataType: "json",
complete: function(data){
showOutput(JSON.parse(data.responseText));
}
});
当我查看 chrome 网络检查器时,我看到在 Method 下,一个写着 GET,另一个写着 OPTIONS。除此之外,请求完全相同。
在服务器上,我设置了以下标头:
this.res.setHeader("Content-Type", "text/json; charset=utf-8");
this.res.setHeader("Access-Control-Allow-Origin", "*");
this.res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Time");
【问题讨论】:
-
这是预检请求。
-
顺便说一句,您可以触发 Content-Type 为
text/plain而不是text/json的非预检请求。
标签: javascript jquery ajax http-headers