2015-07-05 84 views
0

我知道如何使用XMLHttpRequest()來使用"GET"數據,並且還想使用XMLHttpRequest()"PUT"數據到一個文件。我想"PUT"的數據只是純文本。有很多關於如何"GET"數據,但我已經做了很多研究,並沒有發現太多關於如何"PUT"數據。網上有幾個問題試圖做類似的事情,但通常是"POST",而我沒有發現可以展示一個工作模型。有人說,對於"POST" ing或"PUT" ing數據,它的"Content-type"必須是"application/x-www-form-urlencoded"而不是"text/plain"。我想同步執行我的請求,而不是使用Node.js。根據我的發現,這(下面)似乎是"PUT"數據的方式,但不起作用。XMLHttpRequest「PUT」

數據應該怎麼樣"PUT"使用XMLHttpRequest()

var string = encodeURIComponent("Text String!"); 
var req = new XMLHttpRequest(); 
req.open("PUT", "example/data.txt", false); 
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
req.setRequestHeader("Content-length", string.length); 
req.setRequestHeader("Connection", "close"); 
req.send(string); 

我試圖"text/plain""Content-type",但對瀏覽器控制檯我我想更換或資源上的「語法錯誤」告訴​​我「沒有元素中找到」如果資源是空白。

+1

您是否嘗試過使用捲曲或提琴手?,將您的端點配置爲PUT – BhavO

+0

嘗試使用異步請求。同步XHR已棄用,並可能對非常規請求(CORS,PUT等)引發異常。另外,您不需要設置「內容長度」,瀏覽器會自動爲您執行此操作。 – Bergi

+0

@Bergi,我已經嘗試了一個異步請求並註釋掉了Content-length,但是它在控制檯中返回與同步請求相同的結果,並且沒有更改由「PUT」操作的資源。 – JavaScriptArray

回答

0

PUT創建或替換資源。因此,Content-Type頭字段應該包含您要發送的表示的內容類型。詳情請參閱section 4.3.4 of RFC 7231

+0

我知道「PUT」會創建或替換資源並嘗試將「text/plain」作爲「Content-type」,但瀏覽器控制檯在我想要替換的資源中給我一個語法錯誤,或者如果資源爲空,則告訴我找不到任何元素。 – JavaScriptArray