我正在尝试向服务器发出发布请求,但无法创建。 我必须创建的请求是-
POST /buy/new/product HTTP/1.1
Host: foo.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0)
Gecko/20100101 Firefox/64.0
Accept: application/json;api-version=3.2-
preview.1;excludeUrls=true;enumsAsNumbers=true
;msDateFormat=true;noArrayWrap=true
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://foo2.com/buy/
content-type: application/json
origin: https://foo.com
Content-Length: 76
Connection: close
Cookie: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{"buyId":"3232323-32-3-23-23232-3","force":false,"token":11111111111}
但是我根据我的代码发出的请求是-
OPTIONS /buy/new/product HTTP/1.1
Host: foo.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0)
Gecko/20100101 Firefox/64.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Referer: http://foo.com/
Origin: http://foo.com
Connection: close
我使用的代码-
<html>
<body>
<center>
<h2>Buy Now</h2>
<div id="demo">
<button type="button" onclick="buy()">Buy Now</button>
</div>
<script>
function buy() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = alert(this.responseText);
}
};
xhttp.open("POST", "https://foo.com//buy/new/product", true);
xhttp.withCredentials = true;
xhttp.setRequestHeader("Content-Type","application/json;api-version=3.2-
preview.1");
xhttp.send(JSON.stringify('{"buyId":"3232323-32-3-23-23232-
3","force":false,"token":11111111111}'));
}
</script>
</body>
</html>
请帮助我解决此问题。当点击按钮购买它并查看开发人员工具时,我收到了Option请求。我也想发送数据{“ buyId”:“ 3232323-32-3-23-23232-3”,“ force”:false,“ token”:11111111111} 但我无法将其发送到我的服务器。 谢谢
答案 0 :(得分:0)
之所以发生这种情况,是因为如果来自两个不同URL(例如www.abc.com到www.xyz.com)的浏览器作为一种安全性阻止了该请求。您可以通过在您请求的后端服务器上配置CORS来解决此问题,或者测试一下是否可以在将解决该问题的浏览器中使用CORS插件。例如,在chrome中,您可以使用以下插件禁用CORS https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en