首先,我必须说我是AJAX的新手。所以这个问题听起来对大多数人来说都是愚蠢的 但我真的很感激这方面的任何帮助 我一直在尝试添加make a AJAX get request并在标头中传递一些参数因某些原因而失败。 我知道它是一个非常基本的问题,但我一直在寻找过去4个小时的修复,但找不到合适的解决方案
function resetSession() {
$.ajax({
dataType: "text",
beforeSend: function (request)
{
request.setRequestHeader("sessionVariable", sessionVariable);
},
url: "/reset.php",
type: "GET",
success: function(data) {
alert("yes");
},
error: function(data){
alert("no");
}
});
}
我没有看到这个代码的任何问题,我确实寻找另一个修复它,但找不到它 每次调用该函数时,请求URL都是正确的,但请求方法是OPTIONS
期待一个简单的解决方案 提前谢谢
答案 0 :(得分:1)
我遇到了同样的问题。 I solved it by not using jQuery。我认为他们尚未涵盖。
您的浏览器正在发送OPTIONS
请求,以确定服务器是否接受了您的请求(retarded, ain't it?)。 This is a part of CORS(如果您有兴趣,请阅读整篇文章)。服务器可能会拒绝更改标头的请求。 Referrer
标题永远不会被更改。
尝试发送普通的ajax:
var req = new XMLHttpRequest();
req.open("GET", "/reset.php");
req.onload = function() {
console.log("SUCESS:", this.responseText);
}
req.onerror = function() {
console.log("FAILURE:", this.status);
}
req.setRequestHeader("sessionVariable", sessionVariable);
req.send(null);
我不确定jQuery dataType
属性应该做什么。但既然你没有发送任何东西,那可能无关紧要。