jQuery PUT ajax请求无法正常工作

时间:2011-05-01 05:49:38

标签: javascript ajax jquery couchdb backbone.js

我正在尝试在couchdb中保存Backbone模型,所以我用ajax requet覆盖了save方法到couchdb:

  $.ajax({
    type: 'PUT',
    url: 'http://127.0.0.1:5984/movies/' + this.get('id'),
    contentType: 'application/json',
    data: JSON.stringify(this.toJSON()),
    success: function() {
      console.log('asdf');
    },
    failure: function() {
     console.log('test');
    }
  });

发送请求但是当我查看couchdb日志时,jQuery似乎发送了OPTIONS HTTP方法而不是PUT

  

[info] [< 0.1601.0>] 127.0.0.1 - -   'OPTIONS'/ movies / 862 405

并且couchdb发送405 HTTP响应代码(不允许使用方法)。任何想法?

修改 以下是发送到CouchDB的标题:

OPTIONS /movies/862 HTTP/1.1
Host: 127.0.0.1:5984
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: http://localhost:8888
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: content-type

2 个答案:

答案 0 :(得分:2)

有一个用于couch-db的骨干连接器.. https://github.com/janmonschke/backbone-couchdb

答案 1 :(得分:0)

所有浏览器都不支持PUT。此外,您的数据属性是“数据”,而不是“正文”。