显然,我完全误解了它的语义.我想到了这样的事情:
好吧,我错了.它根本不起作用.所以,我已经阅读了跨源资源共享,并尝试在w3c推荐中阅读跨源资源共享
有一件事是肯定的 - 我仍然不明白我应该如何使用这个标题.
我完全控制了站点A和站点B.如何启用从站点A下载的javascript代码以使用此标头访问站点B上的资源?
PS
我不想使用JSONP.
有没有办法允许多个跨域使用Access-Control-Allow-Origin标头?
我知道了*,但它太开放了.我真的想只允许一些域名.
举个例子,像这样:
Access-Control-Allow-Origin: http://domain1.example, http://domain2.example
Run Code Online (Sandbox Code Playgroud)
我已经尝试过上面的代码,但它似乎不适用于Firefox.
是否可以指定多个域,或者我只坚持一个?
如何通过JavaScript发送跨域POST请求?
注意 - 它不应该刷新页面,然后我需要抓取并解析响应.
这是两个页面,test.php和testserver.php.
test.php的
<script src="scripts/jq.js" type="text/javascript"></script>
<script>
$(function() {
$.ajax({url:"testserver.php",
success:function() {
alert("Success");
},
error:function() {
alert("Error");
},
dataType:"json",
type:"get"
}
)})
</script>
Run Code Online (Sandbox Code Playgroud)
testserver.php
<?php
$arr = array("element1",
"element2",
array("element31","element32"));
$arr['name'] = "response";
echo json_encode($arr);
?>
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:当这两个文件都在同一台服务器(localhost或web服务器)上时,它可以工作并被alert("Success")调用; 如果它位于不同的服务器上,意味着Web服务器上的testserver.php和localhost上的test.php,它就无法工作,并且alert("Error")正在执行.即使ajax中的URL更改为http://domain.com/path/to/file/testserver.php
Bootstrapcdn最近改变了他们的链接.它现在看起来像这样:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ=="
crossorigin="anonymous">
Run Code Online (Sandbox Code Playgroud)
这些integrity和crossorigin属性是什么意思?它们如何影响样式表的加载?
我正在Ajax.request使用Sencha Touch 2应用程序(包装在PhoneGap中)创建一个远程PHP服务器.
服务器的响应如下:
XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php.原产地
http://localhost:8888不被访问控制允许来源允许的.
我该如何解决这个问题?
我正在尝试设置AngularJS与跨源资源进行通信,其中传递我的模板文件的资产主机位于不同的域上,因此角度执行的XHR请求必须是跨域的.我已经为我的服务器添加了适当的CORS标头,以便使其工作,但它似乎不起作用.问题是,当我在浏览器(chrome)中检查HTTP请求时,发送到资产文件的请求是OPTIONS请求(它应该是GET请求).
我不确定这是AngularJS中的错误还是我需要配置一些东西.根据我的理解,XHR包装器无法发出OPTIONS HTTP请求,因此看起来浏览器正在试图确定在执行GET请求之前是否"允许"首先下载资产.如果是这种情况,那么我是否还需要使用资产主机设置CORS标头(Access-Control-Allow-Origin:http://asset.host ..)?
我在两个不同的域中有两个webapps WebApp1和WebApp2.
我知道这听起来很奇怪,因为cookie特定于某个域,我们无法从不同的域访问它们; 我听说过CROSS-DOMAIN cookie可以在多个webapps之间共享.如何使用CROSS-DOMAIN cookie实现此要求?
注意:我正在尝试使用J2EE webapps
如何处理getJSON调用中的错误?我试图使用jsonp引用跨域脚本服务,你如何注册错误方法?
好的,我有一个页面,在这个页面上我有一个iframe.我需要做的是在iframe页面上,找出主页面的URL是什么.
我已经搜索过,我知道如果我的iframe页面位于不同的域上,这是不可能的,因为这是跨站点脚本.但是我读过的每个地方都说如果iframe页面和父页面在同一个域中,那么如果我这样做,它应该可以工作:
parent.document.location
Run Code Online (Sandbox Code Playgroud)
parent.window.document.location
Run Code Online (Sandbox Code Playgroud)
parent.window.location
Run Code Online (Sandbox Code Playgroud)
parent.document.location.href
Run Code Online (Sandbox Code Playgroud)
...或其他类似的组合,因为似乎有多种方法来获得相同的信息.
不管怎么说,这就是问题所在.我的iframe与主页面位于同一个域中,但它不在同一个SUB域中.所以我举个例子
http:// www.mysite.com/pageA.html
然后我的iframe网址是
http:// qa-www.mysite.com/pageB.html
当我尝试从pageB.html(iframe页面)获取URL时,我不断收到相同的访问被拒绝错误.所以看起来甚至子域都算作跨站点脚本,这是正确的,还是我做错了什么?