1. 如果可以使用get请求的话,可以使用jsonp。十分简单的方法。
2. 如果要使用post请求域名不相同的资源的话,可以用cors跨域。
以下两项缺一不可:
1) 在被请求的项目根目录(root下)下放以下文件
crossdomain.xml
cross-domain-policy.dtd
测试从http://domain.com/crossdomain.xml可访问到这两个xml。
2.)被请求的目标在返回时需加Responseheader Access-Control-Allow-Origin
不推荐
推荐
后面的*可以是请求方的域名。
再次尝试,firebug控制台不会报错了~
2. 如果要使用post请求域名不相同的资源的话,可以用cors跨域。
以下两项缺一不可:
1) 在被请求的项目根目录(root下)下放以下文件
crossdomain.xml
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "./cross-domain-policy.dtd">
<cross-domain-policy> <site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy> cross-domain-policy.dtd
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Adobe DTD for cross-domain policy files -->
<!-- Copyright (c) 2008-2009, Adobe Systems Inc. -->
<!ELEMENT cross-domain-policy (site-control?,allow-access-from*,allow-http-request-headers-from*,allow-access-from-identity*)>
<!ELEMENT site-control EMPTY>
<!ATTLIST site-control permitted-cross-domain-policies (all|by-content-type|by-ftp-filename|master-only|none) #REQUIRED>
<!ELEMENT allow-access-from EMPTY>
<!ATTLIST allow-access-from domain CDATA #REQUIRED>
<!ATTLIST allow-access-from to-ports CDATA #IMPLIED>
<!ATTLIST allow-access-from secure (true|false) "true">
<!ELEMENT allow-http-request-headers-from EMPTY>
<!ATTLIST allow-http-request-headers-from domain CDATA #REQUIRED>
<!ATTLIST allow-http-request-headers-from headers CDATA #REQUIRED>
<!ATTLIST allow-http-request-headers-from secure (true|false) "true">
<!ELEMENT allow-access-from-identity (signatory)>
<!ELEMENT signatory (certificate)>
<!ELEMENT certificate EMPTY>
<!ATTLIST certificate fingerprint CDATA #REQUIRED>
<!ATTLIST certificate fingerprint-algorithm CDATA #REQUIRED>
<!-- End of file. --> 测试从http://domain.com/crossdomain.xml可访问到这两个xml。
2.)被请求的目标在返回时需加Responseheader Access-Control-Allow-Origin
不推荐
header("Access-Control-Allow-Origin: *"); 推荐
header('Access-Control-Allow-Origin:http://a.abc.com');后面的*可以是请求方的域名。
再次尝试,firebug控制台不会报错了~
本文介绍了如何使用jsonp和cors解决跨域问题。通过在项目根目录下创建crossdomain.xml文件,并设置相应的跨域策略,实现了不同域名间的资源访问。同时,在目标资源返回时加入特定的响应头,确保浏览器能够正确解析请求。此教程适用于前端开发人员,旨在解决跨域带来的访问限制。

243

被折叠的 条评论
为什么被折叠?



