gpt4 book ai didi

javascript - JQuery AJAX COR 错误

转载 作者:行者123 更新时间:2023-12-03 10:52:12 26 4
gpt4 key购买 nike

我有一个网站,它接受 GET 请求并返回 JSON。我可以使用节点服务器向网站发送请求并收到正确的响应。但是,当我尝试使用客户端 JavaScript 发送它时:

$.ajax({
url: '<myurl>',
type: 'GET',
crossDomain: true,
success: function() { alert("Success"); },
error: function() { alert('Failed!'); }
});

我收到错误

XMLHttpRequest cannot load <myurl>. No 'Access-Control-Allow-Origin' header
is present on the requested resource. Origin 'http://localhost:8080' is
therefore not allowed access.

当我尝试通过添加 dataType: 'jsonp', 将数据类型更改为 jsonp 时对于ajax请求,我收到错误

Uncaught SyntaxError: Unexpected token :

chrome 开发者控制台告诉我错误来自脚本 <myurl>&callback=jQuery21309685717469546944_1423379667604&_=1423379667605 ,当我打开脚本时,我发现我正在尝试检索的 JSON 响应!但我想不知何故它被解释为 JavaScript 函数。有办法解决这个问题吗?我读了很多这样的答案并尝试了很多方法都无济于事。

最佳答案

您需要更改服务器端的某些内容才能在浏览器中进行此操作。服务器需要支持 JSONP 或 CORS 才能跨域访问。

您无法仅进行客户端更改以使 JSONP 或 CORS 正常工作 - 服务器必须配合。

使用 CORS,客户端和服务器之间的 http 请求中必须存在正确的 header ,以便允许浏览器处理跨源请求。

对于 JSONP,它是来自服务器的完全不同类型的响应,使 JSONP 工作(数据封装在 JavaScript 脚本中),因此服务器必须生成其他类型的响应才能使 JSONP 工作。

<小时/>

如果您认为您的服务器已经支持通过 CORS 的跨源请求,那么某处的实现中可能存在错误。

<小时/>

跨源限制在浏览器内部实现,以保护使用浏览器的用户。此类限制不是由服务器强制执行的,因此服务器可以连接到的源不受限制。

关于javascript - JQuery AJAX COR 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28391603/

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