为什么我在这里看到“访问控制不允许原点允许原点”错误?[副本]

这个问题在这里已经有答案了
XMLHttpRequest无法加载XXX编号'访问控制允许原点和#39;标题

(11个答案)

四年前关闭的

我看到以下错误:

原点http://localhost:8080 访问控制允许原点不允许

使用此代码:

var http=new getXMLHttpRequestObject();
变量url=”http://gdata.youtube.com/action/GetUploadToken";
var sendXML='<?xml version=“1.0”?&gt&书信电报;条目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”>我的第一个API</media:title>”+
“<媒体:描述类型=“普通”>第一个API</media:description>””+
“<媒体:类别方案=”http://gdata.youtube.com/schemas/2007/categories.cat“>人员</media:category>”+
“<媒体:关键词>首先,api</media:keywords></media:group></entry>”;
http.open(“POST”,url,true);
http.setRequestHeader(“授权”、“AuthSub令牌=“+AccessToken”);
http.setRequestHeader(“X-GData-Key”,“Key=“+dev_Key”);
setRequestHeader(“内容类型”,“应用程序/atom+xml;字符集=UTF-8”);
http.onreadystatechange=函数(){
如果(http.readyState==4){
警报(http.responseXML);
}
}
send(sendXML);

什么会导致这种情况,我该如何解决

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

  • 例1:您的域是example.com,您想请求test.com=>您不能
  • 例2:您的域是example.com,您想向internal.example.com=>发出请求,但您不能
  • 例3:您的域是example.com:80,您想向example.com:81=>发出请求,但您不能
  • 例4:您的域是example.com,您希望向example.com=>发出请求,您可以

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

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

发表评论