進行GET請求很簡單,只需在錨標記的href屬性中指定一個URL即可。如何將JSON對象追加到GET url?
但是,如何將JSON對象添加到該URL?
我猜這必須通過jQuery來完成......但我無法使用AJAX,或者瀏覽器不顯示響應。
到目前爲止,我試過這個:$j("#gen").attr("href", $j("#gen").attr("href") + "?" + JSON.stringify({object: data}));
但它不附加數據。這是觸發點擊
進行GET請求很簡單,只需在錨標記的href屬性中指定一個URL即可。如何將JSON對象追加到GET url?
但是,如何將JSON對象添加到該URL?
我猜這必須通過jQuery來完成......但我無法使用AJAX,或者瀏覽器不顯示響應。
到目前爲止,我試過這個:$j("#gen").attr("href", $j("#gen").attr("href") + "?" + JSON.stringify({object: data}));
但它不附加數據。這是觸發點擊
這應該工作:
jQuery("#gen").attr("href", jQuery("#gen").attr("href") + "?" + jQuery.param({object: data}));
一個GET請求具有查詢字符串參數。如果它是您真正想要的GET請求,那麼您可以將對象上的屬性映射到請求上的鍵值對。
例如:
JSON object: { prop1: val1, prop2: val2 }
url get querystring: ?prop1=val1&prop2=val2
但是,如果你要的對象發送到服務器,也許你真的想要一個POST?在這種情況下,JSON對象將位於POST的主體中。
GET請求中的任何值都應該被URL編碼到請求字符串中。
有一個jQuery.get()
函數可以爲你做這件事,但它所做的只是將一組名稱/值對作爲查詢字符串參數序列化。
我不確定你的意思是不能使用AJAX。使用jQuery,你可以這樣做:
$.get("foo/bar", { foo: "foo", bar: "bar" },
function(data){
$("#myTarget").append(data);
});
假設當然返回值是HTML。
好吧,我想我明白了一點。如果你只想把一些對象轉換爲查詢字符串,那麼你就可以推出自己的功能很簡單:
function toQueryString(obj){
var formattedVals = [];
for(var prop in obj){
formattedVals.push(prop + "=" + obj[prop]);
}
return formattedVals.join("&");
}
你可以看看它會通過調用它這樣工作:
var data = { foo: "foo", bar: "bar" };
alert(toQueryString(data));
無論如何,這應該讓你有90%的方式。
你的意思是你不能使用AJAX或響應沒有呈現?你只是想生成一個鏈接? – Josh 2012-02-28 04:39:28
是的,我只是想做一個HTTP GET請求,以便服務器可以重定向我的瀏覽器,基於參數中的數據。 – DerNalia 2012-02-28 04:46:48
嚴格地說,不需要jQuery,你只需要正確編碼JSON:'link'。但我不認爲你爲你的問題提供了足夠的信息(上下文)。 – 2012-02-28 04:49:21