ajax GET不使用Header参数

时间:2014-12-03 00:35:39

标签: javascript jquery ajax session get

首先,我必须说我是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

期待一个简单的解决方案 提前谢谢

1 个答案:

答案 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属性应该做什么。但既然你没有发送任何东西,那可能无关紧要。