2012-06-22 48 views
0

HTTP請求可以容納不一定來自HTML表單的有效內容。我的意思是不在傳統的鍵/值格式。JavaScript與有效載荷導航

我想在JavaScript中實現這一點:當用戶點擊一個按鈕時,會調用一個函數來發出帶有文本有效載荷的HTTP PUT請求。

XMLHttpRequest在接收服務器答案時似乎不允許完成頁面的重新加載。另一方面,JavaScript導航方法不允許添加有效內容。

你能幫助我嗎?

謝謝。

+0

是否有任何理由要發送文本有效內容,而不是將文本作爲應用程序/ x-www-form-urlencoded表單中的值發送? – spender

+0

我的需求來自我調用服務器CGI期望有效負載,而不是鍵/值對 –

+0

不能jQuery做到這一點。我似乎記得用jquery發送純json,所以我想你可以發送你想要的東西。 – spender

回答

0

您需要創建一個隱藏的<form>標籤,其中<input>包含您的有效負載,然後submit()它。

+1

謝謝,但不是強制設置「名稱」屬性輸入標籤,將創建一個鍵/值對,我想避免? –

0

如果您需要使用PUT動詞,那麼XMLHttpRequest是您唯一的選擇。您無法使用隱藏(或非隱藏)表單執行PUT,也無法使用表單設置內容傳輸編碼。

但是,當XMLHttpRequest成功時,可以使用文檔對象模型根據服務器返回的內容更改頁面內容。

因此,例如,您可以刪除所有現有的元素,並用服務器返回的HTML替換它們。或者你可以將用戶重定向到不同的頁面。

+0

謝謝。在我的描述中有點不清楚,但我真正想要的是調用一個HTTP PUT請求,並將有效負載導向唯一的其他位置。就像提交表單或在鏈接上敲擊一樣。 –

+0

@ user1474829,提交表單不使用PUT。它使用POST或GET。 – Ben