gpt4 book ai didi

javascript - Post ajax 请求发送选项请求而不是 post

转载 作者:太空宇宙 更新时间:2023-11-04 03:26:08 25 4
gpt4 key购买 nike

我正在发送一个 post ajax 请求:

var responsehttpreq = {}
function createAndSendXmlHttpReq(){
requestBody = {
hostname: "prova",
pathname: "prova",
query: "prova",
method: "prova"
}
console.log("Siamo nella funzione createAndSendXmlHttpReq")
var req = new XMLHttpRequest()
req.onreadystatechange = handler
req.open("POST","http://localhost:8080",true)
req.setRequestHeader("Content-type","application/json")
req.send(JSON.stringify(requestBody))
}

function handler(){
if(this.readyState == 4 && this.status == 200){
console.log('----Risposta http------')
console.log('Status Code:'+this.status)
console.log('Dati:'+this.response)
responsehttpreq = JSON.parse(this.response)
}
}

createAndSendXmlHttpReq() 是从 html 页面中的按钮调用的,当我按下按钮时,我没有收到任何响应,但我可以从开发人员控制台看到已发送针对 CORS 选项的选项请求。我已经实现了一个 Node js 服务器,如果有选项请求,它会发送正确的响应:

if(req.method == "OPTIONS"){
res.setHeader("Access-Control-Allow-Origin","*")
res.setHeader("Access-Control-Allow-Methods","POST")
res.setHeader("Access-Control-Request-Headers","content-type")
res.end()
}

浏览器从服务器收到选项请求的 200 ok 响应,但之后我的 ajax post 请求未到达服务器。有什么问题吗?

最佳答案

res.setHeader("Access-Control-Allow-Origin","*")

响应 preflight OPTIONS requestAccess-Control-Allow-Origin header 不能使用通配符。

您的浏览器的控制台应该会告诉您这一点。

您需要查看 Origin 请求 header ,确定它是否为您所接受,然后将其用作 Access-Control-Allow-Origin header 的值。

关于javascript - Post ajax 请求发送选项请求而不是 post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44431880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com