gpt4 book ai didi

javascript - 为什么我在这里看到 "origin is not allowed by Access-Control-Allow-Origin"错误?

转载 作者:IT老高 更新时间:2023-10-28 13:17:48 28 4
gpt4 key购买 nike

我看到以下错误:

Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin

使用此代码:

var http = new getXMLHttpRequestObject();
var url = "http://gdata.youtube.com/action/GetUploadToken";
var sendXML = '<?xml version="1.0"?><entry xmlns="http://www.w3.org/2005/Atom"'+
'xmlns:media="http://search.yahoo.com/mrss/'+
'xmlns:yt="http://gdata.youtube.com/schemas/2007">'+
'<media:group><media:title type="plain">My First API</media:title>'+
'<media:description type="plain">First API</media:description>'+
'<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People</media:category>'+
'<media:keywords>first, api</media:keywords></media:group></entry>';
http.open("POST", url, true);
http.setRequestHeader("Authorization", "AuthSub token=" + AccessToken);
http.setRequestHeader("X-GData-Key", "key="+ dev_key);
http.setRequestHeader("Content-Type", "application/atom+xml; charset=UTF-8");

http.onreadystatechange = function() {
if(http.readyState == 4) {
alert(http.responseXML);
}
}
http.send(sendXML);

这是什么原因造成的,我该如何解决?

最佳答案

在当前域之外发出 ajax 请求时,Javascript 会受到限制。

  • 示例 1:您的域是 example.com,您想向 test.com 发出请求 => 您不能。
  • 示例 2:您的域是 example.com,您想向 inner.example.com 发出请求 => 您不能。
  • 示例 3:您的域是 example.com:80,您想向 example.com:81 发出请求 => 您不能
  • EX 4:您的域是 example.com,您想向 example.com 发出请求 => 可以。

出于安全原因,Javascript 受到“同源策略”的限制,因此恶意脚本无法联系远程服务器并发送敏感数据。

jsonp是使用 javascript 的另一种方式。您发出请求,结果被封装到在客户端运行的回调函数中。这与将新的脚本标签链接到您的 html 的头部部分相同(您知道您可以在此处从不同的域加载脚本)。
但是,要使用 jsonp,必须正确配置服务器。如果不是这种情况,则不能使用 jsonp,并且必须依赖服务器端代理(PHP、ASP 等)。有很多与这个主题相关的指南,只需谷歌它!

关于javascript - 为什么我在这里看到 "origin is not allowed by Access-Control-Allow-Origin"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310112/

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