ajax跨域请求局域网ip,前端ajax在局域网请求另一主机的后台跨域问题(解决)...

1.这个方法不太妥当,不够安全,需要自己去写一个拦截器

web.xml配置指向拦截器

JsonFormat

com.qianmo.qmyj.common.JsonFilter

JsonFormat

*.do

packagecom.qianmo.qmyj.common;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Component;import javax.servlet.*;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/*** FileName: ${NAME}

* Author: anpei

* Date: 2017/5/16

* Description:

* History:*/@Componentpublic class JsonFilter implementsFilter {private Logger logger =LoggerFactory.getLogger(getClass());public voiddestroy() {

}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throwsServletException, IOException {

HttpServletRequest request=(HttpServletRequest) req;

HttpServletResponse response=(HttpServletResponse) resp;

logger.debug("------->受理HTTP请求,方式为:" + ((HttpServletRequest) req).getMethod() + "

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

response.setContentType("text/json");

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

response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT,HEAD");

response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Headers","X-Requested-With,Content-Type");

response.setHeader("Access-Control-Allow-Credentials", "true");//response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");//String curOrigin = request.getHeader("Origin");//if (curOrigin != null) {//for (int i = 0; i < originProperties.length; i++) {//logger.debug("-------->允许跨域访问的来源是:" + originProperties[i] + "

chain.doFilter(req, resp);

}public void init(FilterConfig config) throwsServletException {

}

}

2.还有一个办法,我在eclipse里使用,是没有问题的,不过不知道为什么在idea里总是报错,因为时间关系,我也没深究,选择了上面的解决方法,也贴在下面吧。

----------------------web.xml-------------------------------------------------

CORS

com.thetransactioncompany.cors.CORSFilter

CORS

/*

------------------------util工具类(CorsConfig)----------------------------------------

packagecom.commerce.utils;//允许ajax跨域请求

importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.cors.CorsConfiguration;importorg.springframework.web.cors.UrlBasedCorsConfigurationSource;importorg.springframework.web.filter.CorsFilter;

@Configurationpublic classCorsConfig {privateCorsConfiguration buildConfig() {

CorsConfiguration corsConfiguration= newCorsConfiguration();

corsConfiguration.addAllowedOrigin("*"); //1

corsConfiguration.addAllowedHeader("*"); //2

corsConfiguration.addAllowedMethod("*"); //3

returncorsConfiguration;

}

@BeanpublicCorsFilter corsFilter() {

UrlBasedCorsConfigurationSource source= newUrlBasedCorsConfigurationSource();

source.registerCorsConfiguration("/**", buildConfig()); //4

return newCorsFilter(source);

}

}

引入两个jar

-------------------------pom.xml-------------------------------

com.github.pagehelper

pagehelper

5.0.0

com.thetransactioncompany

cors-filter

2.5

packagecom.commerce.utils;//允许ajax跨域请求

importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.cors.CorsConfiguration;importorg.springframework.web.cors.UrlBasedCorsConfigurationSource;importorg.springframework.web.filter.CorsFilter;

@Configurationpublic classCorsConfig {privateCorsConfiguration buildConfig() {

CorsConfiguration corsConfiguration= newCorsConfiguration();

corsConfiguration.addAllowedOrigin("*"); //1

corsConfiguration.addAllowedHeader("*"); //2

corsConfiguration.addAllowedMethod("*"); //3

returncorsConfiguration;

}

@BeanpublicCorsFilter corsFilter() {

UrlBasedCorsConfigurationSource source= newUrlBasedCorsConfigurationSource();

source.registerCorsConfiguration("/**", buildConfig()); //4

return newCorsFilter(source);

}

}

原文:http://www.cnblogs.com/anpieBlog/p/6880061.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值