相关疑难解决方法(0)

Access-Control-Allow-Origin标头如何工作?

显然,我完全误解了它的语义.我想到了这样的事情:

  1. 客户端从http:// siteA下载javascript代码MyCode.js - 原点.
  2. MyCode.js的响应头包含Access-Control-Allow-Origin:http:// siteB,我认为这意味着允许MyCode.js对站点B进行跨源引用.
  3. 客户端触发MyCode.js的一些功能,它们反过来向http:// siteB发出请求,尽管是跨源请求,但这应该没问题.

好吧,我错了.它根本不起作用.所以,我已经阅读了跨源资源共享,并尝试在w3c推荐中阅读跨源资源共享

有一件事是肯定的 - 我仍然不明白我应该如何使用这个标题.

我完全控制了站点A和站点B.如何启用从站点A下载的javascript代码以使用此标头访问站点B上的资源?

PS

我不想使用JSONP.

javascript cross-domain cors

1050
推荐指数
13
解决办法
144万
查看次数

通过CORS理解XMLHttpRequest(responseText)

对于一个项目,我正在查看各种HTML5和Javascript元素以及它们周围的安全性,我正试图让我的头脑刚刚绕过CORS.

根据我的测试,如果我删除..

<?php
 header("Access-Control-Allow-Origin: *"); 
 header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
 ?>
Run Code Online (Sandbox Code Playgroud)

..从试图访问的页面我在Chrome上的控制台日志中看到以下内容:

XMLHttpRequest cannot load http://www.bla.com/index.php. Origin http://bla2.com is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)

我理解这是正确的,但Wireshark在返回时显示HTTP/1.1 200 OK,数据显示所请求页面的来源.那么只是浏览器和Javascript阻止responseText以任何实质性方式使用,即使它实际上被转移了吗?

代码如下:

  function makeXMLRequest() {
  xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState==4) {
        alert(xmlhttp.responseText);
    }
}
xmlhttp.open("GET","http://www.bla.com/index.php",true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

javascript xmlhttprequest cors

16
推荐指数
2
解决办法
6万
查看次数

如何捕获No Access-Control-Allow-Origin错误?

我正在使用AngularJS,但我遇到了与JQuery相同的问题,并且在JavaScript中也是如此.如果我访问的远程服务器设置了Access-Control-Allow-Origin,则调用successerror方法.

当没有Access-Control-Allow-Origin时,这些都没有被调用,我只能在控制台中看到错误.有没有办法捕获No Access-Control-Allow-Origin我的JavaScript代码中的 错误?

如果您对用例感兴趣,我正在构建PyPi的前端https://pypi.python.org/在那里,您可以获得有关JSON格式的包的信息.(例如https://pypi.python.org/pypi/dspy/json).这些请求设置了Access-Control-Allow-Origin,但是如果我发送一个不在服务器上的包的请求(例如 https://pypi.python.org/pypi/dspyz/json),那么我得到No Access -Control-Allow-Origin因此我的JavaScript代码中没有调用任何内容.

更新

经过一些实验后,我发现该error方法被调用它只是因为我使用的代码存在一些问题并且误导我而引发异常.

javascript jquery json angularjs

7
推荐指数
1
解决办法
544
查看次数

检查内容是否可以在iFrame中显示不起作用

我有以下代码来检查网页是否可以被框架化:

var req = new XMLHttpRequest();
var test = req.open('GET', link, false);
console.log("test",test); //ALWAYS undefined
if(req.send(null)){ //ALWAYS throws error NS_ERROR_FAILURE
    var headers = req.getAllResponseHeaders().toLowerCase();
    console.log("headers");
}else{
    console.log("FAILED");
}
Run Code Online (Sandbox Code Playgroud)

我用几个链接测试它,可以框架或不框架,但总是失败.你知道为什么吗?

链接:

javascript iframe

6
推荐指数
1
解决办法
381
查看次数