【问题标题】:Why is fetch() sending an empty body?为什么 fetch() 发送一个空的正文?
【发布时间】:2016-04-18 09:30:29
【问题描述】:

在我的 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()。

谢谢

【问题讨论】:

    标签: javascript ruby-on-rails json


    【解决方案1】:

    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
    

    【讨论】:

    • 非常接近,谢谢。从那里,我只需要通过将哈希传递给 JSON.stringify() 来生成正文字符串。
    猜你喜欢
    • 2022-09-23
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    相关资源
    最近更新 更多