0

AJAX「PUT」呼び出しをバックエンドにプッシュしています。AJAX 呼び出しからのデータで「req.body」オブジェクトを取得できないようです。

と何か関係があり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);
});
4

1 に答える 1

2

上記のcontentTypeものであってはなりません。

に変更すると
contentType: "application/x-www-form-urlencoded; charset=UTF-8"
、正しい結果が生成されます。

于 2013-09-24T00:24:47.177 に答える