fetch API应当如何POST JSON数据给后端?

我使用VUE+python 组合、python用的是tornado库、fetch API使用的是whatwg-fetch
试了一下、使用fromData可以正常提交数据、后端也可以正常获取数据、
而代码改成这样、想直接提交json数据(试了网上说的好几种办法)没有一个有用、我贴出的是最常见的

fetch(url, {
    method: 'POST',
    mode: 'cors',
    headers: {
        'Content-Type': 'application/json'
    }, 
    body: JSON.stringify(params)
})

这是我用以上的代码调用API的发送情况

clipboard.png

主要是考虑到我的JSON很复杂的时候呢?我不想在后端一个一个get_argument、有没有什么能使fetch能直接发送JSON数据?

阅读 13.2k
3 个回答

fetch没问题,你需要在tornado 上通过self.request.body获取,而不是通过self.get_argument获取

fetch用法没有问题,后端拿到的数据长什么样子?

Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.
cors失败也可能返回200的,不知道你服务器那边怎么设置的。
你可以参考下这两个:
cors 1
cors 2

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏