gpt4 book ai didi

javascript - 调用跨域 API 时出错

转载 作者:行者123 更新时间:2023-11-30 06:29:10 25 4
gpt4 key购买 nike

我在我的 JS 中从 AJAX 调用一个跨域 web 服务 api,但我收到一个错误:

"XMLHttpRequest cannot load http://url2.com/social/polling/get_poll. Origin http://url1.com is not allowed by Access-Control-Allow-Origin"

我还尝试在请求 header 中将 Access-Control-Allow-Origin 设置为 *****,但没有成功,我遇到了同样的错误

下面是我实际做的:

 $.ajax({
type : "POST",
dataType : "jsonp",
data : {
pollId : pollId
},
/* header : {'Access-Control-Allow-Origin':'*'}, */
url : "http://url2.com/social/rs/polling/get_poll",
beforeSend : function(xhr) {
xhr.setRequestHeader('Access-Control-Allow-Origin',
'*');
},

success : function(response) {
var html;

var html = "<div ><h2>" + response.topic + "</h2>";
for ( var index = 0; index < response.options.length; index++) {
html = html
+ "<input type=\"checkbox\" name=\"option\" value=\""
+ response.options[index] + "\" />"
+ response.options[index] + "<br/>";
}
html = html
+ "<input type=\"button\" value=\"Submit\" onclick=\"pollIT("
+ response.pollId + ", '" + response.topic
+ "'); \" /></div>";
$("#question").append("");
$("#question").append(html);
html = "";

},
error : function(e) {
console.log(e);
return false;
}

});

我也试过将标题设置为

header : {'Access-Control-Allow-Origin':'*'}

但仍然没有运气。有人对此有任何想法吗?

最佳答案

跨域 AJAX 需要在您请求的服务器上被允许,它不能在请求中被授权。

所以你需要访问 url1.com 的服务器如果你这样做,这里有一个关于如何启用此访问的指南: http://www.webdevdoor.com/jquery/cross-domain-browser-json-ajax/

如果您没有访问权限并想解决这个问题,您可以使用 AJAX 在您自己的服务器上调用一个脚本,该脚本将向外部服务器发出 CURL 请求。

关于javascript - 调用跨域 API 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19020095/

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