gpt4 book ai didi

javascript - 不存在 'Access-Control-Allow-Origin' header 。 origin因此不允许访问

转载 作者:可可西里 更新时间:2023-11-01 16:09:35 26 4
gpt4 key购买 nike

编辑:没有 JSONP!是的,我知道 CORS 由服务器处理,是的,服务器确实支持它。问题在我这边。

我正在尝试从浏览器使用 MediaWiki API。我正在通过 XMLHttpRequest 发送 GET 请求,但由于 CORS 问题,它无法正常工作。收到响应后,我从浏览器收到以下消息:

XMLHttpRequest cannot load https://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srsearch=Oculus&utf8. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access.

我明白为什么我会遇到这个问题,但我不知道如何从浏览器/JavaScript 端解决它。

代码:

xmlhttp.open("GET","https://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srsearch=" + subreddit + "&utf8",true);
xmlhttp.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xmlhttp.send();

我尝试过的一些事情:

xmlhttp.setRequestHeader('Access-Control-Allow-Origin', 'http://localhost');
xmlhttp.setRequestHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
xmlhttp.setRequestHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
xmlhttp.setRequestHeader('Access-Control-Allow-Credentials', true)
xmlhttp.setRequestHeader("Content-Type", "application/json; charset=UTF-8");

并在 url 中设置参数 origin 或作为 setRequestHeader 返回无效/错误的 Origin,被拒绝。

最佳答案

您可以使用 JSONP。

<script src='https://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srsearch=Oculus&utf8&callback=callbackname'></script>
<script>
function callbackname(data){
//you can get response data here
}
</script>

如果你使用 jquery。

$.getJSON('https://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srsearch=Oculus&utf8&callback=?', function(data){
//you can get response data here
})

关于javascript - 不存在 'Access-Control-Allow-Origin' header 。 origin因此不允许访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32859611/

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