我正在嘗試使用jQuery提交一個PUT請求來提交一個窗體,應該在服務器上創建一個新的REST資源,它返回一個201創建一個位置標題指向新創建資源。下面是是應該處理程序請求的CoffeeScript代碼:PUT請求和位置標頭與jQuery
createNewGame = (name) ->
$.ajax({
url: "/games",
type: "PUT",
data: { game: name },
dataType: "json",
success: succ,
error: err})
我可以看到請求被髮送,並以正確的狀態和位置標頭中設置接收,但隨後沒有任何反應:
響應:
Server Warp/0.4.5
Set-Cookie Game=game123; HttpOnly
Location http://localhost:5678/resources/html/game.html
Content-Type application/json
Transfer-Encoding chunked
請求:
Host localhost:5678
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept application/json, text/javascript, */*; q=0.01
Accept-Language en,en-us;q=0.8,fr;q=0.5,fr-fr;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://localhost:5678/resources/html/index.html
Content-Length 12
如果我使用一個302ř那麼jQuery會遵循響應的Location標題,但是我該如何告訴頁面加載指向答案的頁面呢?當然,我可以使用不同的機制(例如POST查詢),並且我知道我的請求不符合REST,因爲請求的URL應該指向特定的資源,但我想更好地理解問題,因爲我認爲PUT在這裏是正確的動詞(我可以在客戶端上構建資源創建的URI)。
感謝您的回答。