2014-10-12 197 views
-1

我沒有得到我在使用jQuery.post()時的迴應,所以我查看了我的服務器日誌,並且實際上收到了GET請求。我錯過了什麼?是否因爲我使用jsonp作爲我的數據類型?這裏是我的jQuery:jQuery.post()發送GET請求?

$.post('xxx', 'server=xxx', function (data) { 
    console.log(data); 
    $.post('xxx', 'username=xxx&password=xxx', function (data) { 
     console.log(data); 
     $.get('xxx', function (data) { 
      data = $.parseJSON(data); 
      console.log(data); 
     }, "jsonp"); 
    } , "jsonp") 
}, "jsonp"); 

而我的服務器日誌清楚地顯示我發送GET請求。

[11/Oct/2014 21:01:48] "GET ... 
[11/Oct/2014 21:01:48] "GET ... 
[11/Oct/2014 21:01:48] "GET ... 
+0

JSONP不能使用POST。 – SLaks 2014-10-12 01:15:52

回答

2

jsonp是,根據定義,通過插入請求一個腳本(這是允許跨域)的腳本標籤來實現。當瀏覽器處理該腳本標記時,它會將其變成該腳本的GET請求。您無法通過jsonp調用進行POST。

您應該只使用jsonp進行跨域調用,通常不會允許您執行POST。 JSONP是用於跨域訪問的解決方法,但是同樣,只能爲腳本文件執行GET操作。