gpt4 book ai didi

javascript - jquery .ajax() GET请求发送选项

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:13 25 4
gpt4 key购买 nike

我正在尝试使用

从我的本地主机开发箱向服务器发送 ajax 请求
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>

<script type="text/javascript">
$(function() {
var params = {
format: "JSON",
season: "2015REG"
// Request parameters
};

$.ajax({
url: "https://<mysite>/sub/" + params.format + "/" + params.season,
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","<mykey>");
},
type: "GET"
})
.done(function(data) {
alert("success");
console.log("Data: \n" + JSON.stringify(data));
})
.fail(function(error) {
alert("error");
console.log("Error" + JSON.stringify(error));
});
});
</script>
</body>
</html>

当我查看 firefox 时,我发现它实际上正在发送一个 OPTIONS 请求 - 服务器没有响应(404 未找到),所以我收到一个跨源请求被阻止的错误。

OPTIONS 
XHR
https://mysite [HTTP/1.1 404 Resource Not Found 2437ms]
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://mysite (Reason: CORS header 'Access-Control-Allow-Origin' missing).

我做错了什么?当我明确发送 GET 时,为什么 jquery 试图询问选项?此外,我不拥有这台服务器,它是另一家拥有订阅 API 的公司,因此我无法提供 key 或任何有助于解决问题的东西。

最佳答案

CORS 的预检(这就是正在发生的事情)在什么时候完成

  • 请求方法不是GET、HEAD或POST;
  • 使用自定义请求头

在您的情况下,您的自定义 header 正在触发预检

实际上,您的 CORS 请求被服务器拒绝了。根据您发布的内容,您需要在请求中使用自定义 header ,因此如果要提供 CORS 资源,远程服务器需要处理预检请求

您尝试使用的服务器可能未设置为允许客户端(浏览器)连接,仅允许没有跨源限制的“服务器”连接

关于javascript - jquery .ajax() GET请求发送选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33115569/

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