0
我有一個表單,在提交時處理AJAX調用。
在express.js
爲了使用其它HTTP動詞形式必須有
<input type="hidden" name="_method" value="put">
如何用expressjs「put」ajax調用
AJAX調用有type: "PUT"
,當它被髮送到服務器端我不斷收到一個404
,Cannot PUT
。
是否還有其他的AJAX或表單需要成功提交PUT
請求?
有什麼建議嗎?
路由/ index.js
app.put('/:library/:book/:genre/', function(req, res) {
console.log(req.params.genre);
res.send(200, {"youKnow":"putter"});
});
libraryBookForm.jade
form#create-library-form(action='#', method='post')
input(name="_method", value="PUT", type="hidden")
div
label Book
input#book-name(type='text', name='book-name', required='required')
div
label Gender
select#book-genre(name='book-genre')
option(value='scifi') SciFi
option(value='fantasy') Fantasy
div
input(type='submit', id='create-book-submit', value='Create Book')
libraryBookAjax.js
event.preventDefault();
$.ajax({
url: '/publicLibrary/drawingBook/fantasy'
type: 'PUT',
contentType: 'application/json: charset=utf-8',
dataType: 'json',
data: form.serialize()
}).done(function(msg) {
alert("put success: " + msg);
}).fail(function(msg) {
console.log("failure: " + msg);
});
我也嘗試了AJAX請求中的type: "POST"
。在這種情況下,POST
請求將在路由中發送並執行,而不是app.put
。
尾隨斜槓是否重要?即如果它不是'app.put('/:library /:book /:genre',function(req,res){'instead?) – mccannf
OMG!是的......當你不睡覺時會發生什麼! – user1460015