JavaScript POST fetch作为OPTIONS发送

mbyulnm0  于 2023-05-27  发布在  Java
关注(0)|答案(2)|浏览(137)

我正在学习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.
})
vjrehmav

vjrehmav1#

请求preflight
通过传回正确的CORS头来处理选项请求。
然后还要处理post请求,由于API和网站的新CORS标准,这两个都是需要的。

li9yvcax

li9yvcax2#

我发现了同样的问题,并通过将mode: "no-cors"添加到选项字典中来解决它,如下所示:

var response = fetch(url+"/api/login", {
  method: "POST",
  mode: "no-cors",
  headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
  },
  body: content
})
.then(response => {
  console.log("Success") //this doesn't print.
})

相关问题