jQuery PUT ajax请求无法正常工作

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

  $.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] [] 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 

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

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