首页 > 代码库 > 浏览器拦截跨域请求处理方法-firefox报错,同源策略不允许读取XXX上的远程资源

浏览器拦截跨域请求处理方法-firefox报错,同源策略不允许读取XXX上的远程资源

使用post请求域名不相同的资源的话,可以用cors跨域。

1) 在被请求的项目根目录(root下)下放以下文件

crossdomain.xml

  1. [html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
     
    1. <?xml version="1.0"?>  
    2. <!DOCTYPE cross-domain-policy SYSTEM "./cross-domain-policy.dtd">  
    3. <cross-domain-policy<site-control permitted-cross-domain-policies="all" />  
    4.     <allow-access-from domain="*" />  
    5.     <allow-http-request-headers-from domain="*" headers="*"/>  
    6. </cross-domain-policy>  

cross-domain-policy.dtd

 
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="ISO-8859-1"?>  
  2. <!-- Adobe DTD for cross-domain policy files -->  
  3. <!-- Copyright (c) 2008-2009, Adobe Systems Inc. -->  
  4.   
  5. <!ELEMENT cross-domain-policy (site-control?,allow-access-from*,allow-http-request-headers-from*,allow-access-from-identity*)>  
  6.   
  7. <!ELEMENT site-control EMPTY>  
  8. <!ATTLIST site-control permitted-cross-domain-policies (all|by-content-type|by-ftp-filename|master-only|none) #REQUIRED>  
  9.   
  10. <!ELEMENT allow-access-from EMPTY>  
  11. <!ATTLIST allow-access-from domain CDATA #REQUIRED>  
  12. <!ATTLIST allow-access-from to-ports CDATA #IMPLIED>  
  13. <!ATTLIST allow-access-from secure (true|false) "true">  
  14.   
  15. <!ELEMENT allow-http-request-headers-from EMPTY>  
  16. <!ATTLIST allow-http-request-headers-from domain CDATA #REQUIRED>  
  17. <!ATTLIST allow-http-request-headers-from headers CDATA #REQUIRED>  
  18. <!ATTLIST allow-http-request-headers-from secure (true|false) "true">  
  19.   
  20. <!ELEMENT allow-access-from-identity (signatory)>  
  21.   
  22. <!ELEMENT signatory (certificate)>  
  23.   
  24. <!ELEMENT certificate EMPTY>  
  25. <!ATTLIST certificate fingerprint CDATA #REQUIRED>  
  26. <!ATTLIST certificate fingerprint-algorithm CDATA #REQUIRED>  
  27.   
  28. <!-- End of file. -->  

 测试从http://domain:port/crossdomain.xml可访问到这两个xml。

     2.)被请求的目标在返回时需加Responseheader   Access-Control-Allow-Origin

        response.setHeader("Access-Control-Allow-Origin", "*");

       后面的*可以是请求方的域名。

参考:http://blog.csdn.net/hereiskxm/article/details/32093675

 

浏览器拦截跨域请求处理方法-firefox报错,同源策略不允许读取XXX上的远程资源