2012-10-05 50 views
1

我正在使用jQuery 1.8.2通過jQuery的ajax POST調用某些後端服務器API。後端服務器和網頁都在同一個域中。jQuery.post被髮送爲IE9上的HTTP GET

在我的js文件,我只是要求$.post('/createAccount',data,function(e) { alert(e); });

在提琴手,該請求被髮送一個GET,在IE9。

GET http://[redacted]/createAccount HTTP/1.1 
Accept: */* 
Origin: [redacted] 
Accept-Language: en-US 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
Host: [redacted] 
Connection: Keep-Alive 
Pragma: no-cache 

使用Chrome相同的頁面(最新)返回提琴手如下:

POST http://[redacted]/createAccount HTTP/1.1 
Host: [redacted] 
Connection: keep-alive 
Content-Length: 103 
Origin: http://[redacted] 
X-Requested-With: XMLHttpRequest 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 
Accept: */* 
Referer: http://[redacted]/builder?token=[redacted] 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 

email=test123&token=[redacted]&company=tokentest1 

下面是使用$阿賈克斯,而不是$。員額(同一個問題)代碼:

 $.ajax({ 
      url : '/createAccount', 
      type : 'POST', 
      data : obj, 
      dataType : 'json', 
      cache: 'false', 
      success : function(data) { 
       if(data.status === 'ok') { 

       } else { 
        alert('error'); 
       } 
      } 
     }); 
+0

對於調試,你可以切換到使用$ .ajax並比較結果嗎? –

+0

我可以(實際上最初的調用是$ .ajax({...,type:'POST'})。調試有什麼特別的好處嗎? – Alan

+0

好吧,由於$ .post轉發給$ .ajax,它消除了$ .post as the cause。 –

回答

0

這是一個清晰的時刻。我還有一些代碼可以回退到MSFT的XDomainRequest,並且在那個代碼中它強制所有請求得到,而不是從jQ​​uery選項對象中取出請求類型。

相關問題