跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域.
A网站的js要访问B网站的url,如何实现呢?
js这样写$.get('http://127.0.0.1',function(d){console.log(d)})
(不做任何设置的话,会报错 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.)
B网站要设置允许跨域访问(之前一直以为是要在A网站服务端放开限制)
如果服务端在nginx中,则增加 location / { add_header 'Access-Control-Allow-Origin' '*';
如果服务端在dropwizard中,增加
public void run(CmConfiguration configuration, Environment environment){
senvironment.servlets().addFilter("CrossOriginFilter", new CrossOriginFilter()).addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
其效果,就是在response头中,增加了 Access-Control-Allow-Origin: *
这样修改后,即使用浏览器打开本地html文件,也可以访问B的url了。