2012-10-31 20 views
3

我遇到了第一次服務器通信問題,希望有所幫助。服務器收到類型爲「POST」的JQuery Ajax-Call:「GET」

按照教程,我創建了一個web服務器(跨域)的ajax調用。一切都很好,直到我嘗試將類型從「GET」切換到「POST」:JQuery仍然發送get-requests(firebug-confirmed,server r_print()測試了$ _POST和$ _GET)。

所以對我來說最大的問題是:我如何教$ .ajax發送POST? (是的,一個GET可能會做,但這段代碼並不是我想要它做的,這會傷害我的感受)

我用一個簡單的HTML表單檢查了PHP端,它發送了一個帶有預期結果的文章。

我也添加了一行:

jQuery.ajaxSetup({ jsonp: null, jsonpCallback: null}); 

提出在沒有陽性結果了類似的回答。

服務器代碼(PHP)由無非是:

echo("alert('".print_r($_POST)." -- + -- ".print_r($_GET)+"');"); 

jQuery的一面:

function executeRequest() { 
$.ajax({ 
    type: "POST", 
    url: "http://server/script", 
    data: ({ username: "test" }), 
    dataType: "jsonp", 
    jsonp: "jsonCallback", 
    contentType: "application/json", 
    jsonCallback: "jsonCallback", 
}); 
} 
function jsonCallback(data) { 
alert(data.username); 
} 

executeRequest();

每一個幫助或暗示 - 無論是對提高我的搜索模式以及具體的問題 - 非常appreceated :)

謝謝!

回答

1

JSONP插入腳本標籤,該腳本標籤從不同的域執行Javascript,並且只支持GET請求,因爲無論您想使用什麼,POST都不可能帶有插入到DOM中的腳本標籤。

+0

哈哈一個如此簡單的答案。感謝adeneo和Slaks!再學習一些東西。 – user1789575

1

JSONP的工作原理是創建一個<script>標記。
發送JSONP POST基本上是不可能的。

相關問題