JavaScript POST fetch 作为 OPTIONS 发送

Posted

技术标签:

【中文标题】JavaScript POST fetch 作为 OPTIONS 发送【英文标题】:JavaScript POST fetch sends as OPTIONS 【发布时间】:2021-12-27 18:45:02 【问题描述】:

我正在学习 javascript,我正在制作一个帐户登录页面作为学习项目。服务器正在使用 Python 的 Flask。 fetch 功能似乎没有像我想要的那样工作。一方面,它发送的是选项请求而不是 POST,即使我指定了 POST。另一件事是服务器没有收到数据,它显示为空白。代码如下:

var content = JSON.stringify('username': username, 'password': password) //username and password are user inputs, I had them print and these work fine.
var response = fetch(url+"/api/login", 
      method: "POST",
      headers: 
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      ,
      body: content
    )
.then(response => 
  console.log("Success") //this doesn't print.
)

【问题讨论】:

听起来您正在进行跨域调用。它在发布之前进行握手。 ***.com/questions/38375124/… 【参考方案1】:

这是一个preflight 请求

通过传回正确的 CORS 标头来处理选项请求。

然后还要处理 post 请求,由于 API 和网站的新 CORS 标准,这两个都是必需的。

【讨论】:

以上是关于JavaScript POST fetch 作为 OPTIONS 发送的主要内容,如果未能解决你的问题,请参考以下文章

$_POST 未从 Javascript 的 Fetch() 中检索数据

javascript fetch()GET&POST(Boilerplate)

javascript 使用fetch API的简单POST请求

javascript es6_fetch_post.js

使用 javascript fetch api 执行 POST 请求

javascript ajax 调用通过仅使用 POST 方法的 fetch 调用:奇怪的行为是 post 后跟 get plus 再次请求所有资源?