2012-10-01 200 views
7

如何同時發送GET和POST參數與jquery ajax請求?jquery同時發送GET和POST參數在ajax請求

我試圖將do=ajax&id=" + ID添加到url,但因爲結果請求只打磨到sss.php而沒有查詢字符串(get part)。謝謝。

$.ajax({ 
    url: "sss.php?do=ajax&id=" + ID , 
    type: "post", 
    data: "ddd=sss", 
    // callback handler that will be called on success 
    success: function(response, textStatus, jqXHR){ 
     // log a message to the console 
     console.log("Hooray, it worked!"); 
    }, 
    // callback handler that will be called on error 
    error: function(jqXHR, textStatus, errorThrown){ 
     // log the error to the console 
     console.log(
      "The following error occured: "+ 
      textStatus, errorThrown 
     ); 
    } 
}); 
+0

嘗試使用'$ .post'而不是'$ .ajax' – defuz

+1

@defuz:他/她*使用'post',用於所有意圖和目的。 ['post'](http://api.jquery.com/jQuery.post/)僅僅是'type:「post」'請求的便捷包裝。 –

+0

對我而言,您的解決方案正在發揮作用。它也應該適合你。開始並檢查您的Chrome網絡控制檯,以查看發送給服務器的請求。 –

回答

9

我想你會得到一個觀察錯誤,或者看到服務器端而不是jQuery問題。當我做了後like this

$.ajax({ 
    url: "http://jsbin.com/eduzif/1?foo=bar", 
    type: "post", 
    data: "baz=doh", 
    success: function() { 
    display("Done, look at your console's network tab"); 
    } 
}); 

...查詢字符串和POST數據都被髮送到服務器。如果您使用Chrome或Firefox等現代瀏覽器並在觸發該帖子後在控制檯的「網絡」選項卡中查看,則很容易檢查這一點。在我的情況:

Image showing post with both query string and form data

(您可以忽略服務器上面403答道,JSBin不允許POST,但這並不影響我們的要求去服務器看看。 )

所以這裏的答案是:仔細檢查你如何獲得數據服務器端。 URL中的參數(「GET」樣式參數)可用作查詢字符串參數(URL的一部分); 「POST」風格參數可作爲「表格」數據(例如響應的主體)提供。根據您使用的服務器端技術,通常有不同的方式來檢索GET(查詢字符串)參數與POST(表單數據/主體)參數。

+0

感謝,複查,複製和過去的代碼,現在似乎它的工作。不知道最新版本的代碼是什麼問題:(謝謝 – abrahab

+0

+1,明白了, SO'教給我一些東西。 –