为什么我在这里看到了"源被Access-Control-Allow-Origin拒绝"的错误?[重复]

16 浏览
0 Comments

为什么我在这里看到了"源被Access-Control-Allow-Origin拒绝"的错误?[重复]

这个问题已经有答案了:

XMLHttpRequest无法加载XXX,没有“Access-Control-Allow-Origin”头

我看到了以下的错误:

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 = ''+
    'My First API'+
    'First API'+
    'People'+
    'first, api';
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);

这是什么原因造成的,我该怎么解决它?

admin 更改状态以发布 2023年5月22日
0
0 Comments

由于“同源策略”,XMLHttpRequest将不允许您访问localhost:8080

您可以通过在localhost:8080的响应中添加标头来允许现代浏览器进行请求:

Access-Control-Allow-Origin: *

您可以通过向HTTP服务器添加指令或通过服务器端代码(PHP,Ruby等)添加标头来实现。

阅读有关跨源Ajax请求的更多信息,请访问https://developer.mozilla.org/en/http_access_control

0
0 Comments

Javascript在跨域请求时受限。

  • 示例1:你的域名是example.com,想要向test.com发出请求 => 你无法这样做。
  • 示例2:你的域名是example.com,想要向inner.example.com发出请求=>你无法这样做。
  • 示例3:你的域名是example.com:80,想要向example.com:81发出请求 =>你无法这样做。
  • 示例4:你的域名是example.com,想要向example.com发出请求 =>你可以这样做。

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

jsonp是在javascript中使用不同的方法。您发出请求,结果被封装在回调函数中,在客户端运行。这与链接一个新的脚本标签到html的头部中完全一致(您知道您可以在这里从不同的域加载脚本)。
但是,要使用jsonp,服务器必须正确配置。如果不是这种情况,你不能使用jsonp,你必须依靠服务器端代理(PHP、ASP等)。有大量与此主题相关的指南,请使用谷歌搜索!

0