自己建立网站的时候,经常会遇到域间的问题。 以下是平时多次实践总结的解决方法。 大家如果有什么更好的想法的话,请互相交流一下~
xmlhttprequestcannotload http://www.im OOC.com/data/che. no ' access-control-allow-origin ' headerispresprentonthererenthererer
解决方法:添加源之间的问题,酷睿。
1 .将response.setheader (访问控制-全部对齐','')添加到过滤器或servlet; 2.response.setheader (' access-control-allow-origin ',''); 放置在接收客户端api的位置
3 .对于servlet,将其放在get或post方法中,jsp页放在第一行
4 .配备过滤器时扔给dofilter () )
----------------springMVC
添加SimpleCORSFilter.java
import java.io.IOException;
导入javax.servlet.filter;
导入javax.servlet.filter chain;
导入javax.servlet.filter config;
导入javax.servlet.servlet exception;
导入javax.servlet.servlet request;
导入javax.servlet.servlet response;
import javax.servlet.http.http无servlet保罗;
importorg.spring framework.stereotype.com ponent;
@Component
publicclasssimplecorsfilterimplementsfilter {
publicvoiddofilter (servletrequestreq,ServletResponse res,FilterChain chain ) throws IOException,ServletException {
http servlet响应=(http servlet响应) res;
response.setheader (' access -控制- allow-origin ',' * ';
response.setheader (访问控制多种方法)、) POST、GET、OPTIONS、DELETE );
response.setheader (' access -控制- max-age ',' 3600 ' );
response.setheader (访问控制- allow-headers (,x-requested-with );
//response.setheader (access-control-allow-headers )、(Content-Type );
//response.set content type (' text/html; charset=UTF-8 ';
//response.setheader (' access -控制- allow-origin ',' * ' );
//response.setheader (访问控制多种方法)、) POST、GET、OPTIONS、DELETE );
//response.setheader (' access-control-max-age ','0' );
//response.setheader (access-control-allow-headers )、)认证、原始、接受、无缓存、x-requeueus
//response.setheader (' access-control-allow-credentials ',' true ' );
//response.setheader (xdomainrequestallowed ),)1);
chain.dofilter(req,res );
}
公共语音输入(filterconfigfilterconfig ) }
公共语音目录
}
添加web.xml
SimpleCORSFilter
com.zhcs.context.simplecorsfilter
SimpleCORSFilter
/APP/*
----------- -或--------------- -请参阅
添加CorsConfigureAdapter.java
importorg.spring framework.context.annotation.configuration;
importorg.spring framework.web.servlet.config.annotation.CORS registry;
importorg.spring framework.web.servlet.config.annotation.enablewebmvc;
importorg.spring framework.web.servlet.config.annotation.webmvcconfigureradapter;
@Configuration
@EnableWebMvc
publicclasscorsconfigureadapterextendswebmvcconfigureradapter {
@Override
公共语音编码映射(corsregistryregistry ) {
super.addcorsmappings(registry );
registry.addmapping((/** );
}
}
在Controller或方法中使用@CrossOrigin注释
@ cross origin (最大值=3600 )。
----------------XML
------------nginx支持域间请求
位置/{
add _ header ' access-control-allow-origin ' ' http://other.subdomain.com ';
add _ header ' access-control-allow-credentials ' ' true ';
add _ header ' access-control-allow-methods ' ' get ';
.
the rest of your configuration here
.
}