2013-09-23 6 views
0

AJAX "PUT"호출을 백엔드로 푸시합니다. AJAX 호출의 데이터로 'req.body'객체를 가져올 수 없습니다.AJAX PUT의 데이터가 expressjs 서버로 전송되지 않음

form.serialize()과 관련이 있습니까?
제안 사항이 있으십니까?

노선 /하는 index.js

app.put('/:library/:book/:genre', function(req, res) { 
    console.log(req.body.book-name); 
    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); 
}); 

답변

2

contentType은 위에 명시된 내용이 아니어야합니다.


contentType: "application/x-www-form-urlencoded; charset=UTF-8"
로 변경하면 올바른 결과를 생성합니다.

관련 문제