2013-12-17 80 views
1

當使用jQuery get,post或ajax將參數傳遞給服務器時,將它們附加到URL還是將它們添加到對象會更好嗎?如果答案是基於特定的情況,那麼什麼情況會使得一種方法比另一種更好?例如,請參閱以下內容。向jQuery ajax調用添加參數,最好添加到URL或對象?

$.get('serverScript.php?v1=123&v2=321', { v3: '111' }, function(data) { 
    ... 
}); 

$.get('serverScript.php', { v1:123, v2:321, v3: '111' }, function(data) { 
    ... 
}); 

回答

2

無論何時您可以使用對象來表示數據而不是執行字符串操作 - 請執行此操作。

  • 第一種方法使用手動字符串操作來序列化數據。

  • 第二種方法使用自動測試規格投訴解析器來序列化相同的數據。

用於序列化數據的字符串操作應作爲最後的手段。它很難測試,它不太清楚,更容易出錯。

這與您使用JSON.stringify的事實完全相同,而不是自己構建JSON。

+0

對於我的特殊應用,'{v3:'111'}'是一個屬性(實際上是一個回調函數),可以被用戶覆蓋。你是否仍然建議按照你展示的方式去做?如果是這樣,我可以輕鬆完成,但需要使用jQuery'extend'或一些JavaScript代碼來合併兩個對象。謝謝 – user1032531

+0

@ user1032531我不明白你的_specific_問題或爲什麼你需要'jQuery.extend'(什麼是v1,v2和v3?爲什麼不用有意義的名字:))。但是,我仍然推薦它100%。 –

+0

'v1'和'v2'是應該總是傳遞給服務器的參數,並且被設置爲諸如服務器組件,控制器等等。'v3'甚至'v4'等等都是參數根據插件的配置方式更改,並設置爲頁面記錄ID等。 – user1032531