为什么fetch()发送一个空体?

时间:2016-04-18 09:30:29

标签: javascript ruby-on-rails json

在我的JavaScript客户端中,我有:

var myHeaders = new Headers();
myHeaders.append('Authorization', 'Token token=redacted>');
myHeaders.append('Content-Type', 'application/json');
myHeaders.append('Accept', 'application/json');
var myPost = {method: 'POST', headers: myHeaders};  
var myBody = {body: 'id=1234&result=true&url=http://example.com'}
// for example; generated dynamically but I've checked it works
fetch(database.getValue("base") + "/task/from_chrome", myPost, myBody).then (#etc

为什么我在服务器端(在Rails中)获得以下内容?

> request.body.read
=> ""

服务器端代码已经过验证;这是客户端JavaScript的问题,我必须重写以使用fetch()。

由于

1 个答案:

答案 0 :(得分:0)

https://developer.mozilla.org/en/docs/Web/API/GlobalFetch/fetch

window.fetch只需2个参数,试试这个:

var myPost = {
  method: 'POST', 
  headers: myHeaders,
  body: 'id=1234&result=true&url=http://example.com'};  
fetch(database.getValue("base") + "/task/from_chrome", myPost).then