跨域

1.jsonp跨域(只支持get请求)

$.ajax({
type: "get",
url: 'URL',
data: {
data: JSON.stringify(arr)
},
dataType: "jsonp",
callback: "callback",
beforeSend: function() {
$.showPreloader();
},
success: function(data) {
if(data.status == 'SUCCESS') {
$.alert('提交成功', function() {
window.location.href = 'URL';
});
}else{
$.alert('网络连接异常');
}
},
complete: function() {
$.hidePreloader();
}
});
通过jsonp可以简单处理跨域问题,我认为只要前端做出配合即可,但是存在一个问题,get请求会暴露URL上的传输参数,这样如果URL超过2KB,会导致request data 过大,无法正常与后端交互,这也只适应data数据少量的情况

2.Tomcat配置跨域
<filter>  
    <filter-name>CORS</filter-name>  
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>  
    <init-param>  
     <param-name>cors.allowOrigin</param-name>  
        <param-value>*</param-value>  
    </init-param>  
    <init-param>  
    <param-name>cors.supportedMethods</param-name>  
        <param-value>GET, POST, HEAD, PUT, DELETE</param-value>  
    </init-param>  
    <init-param>  
     <param-name>cors.supportedHeaders</param-name>  
        <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>  
    </init-param>  
    <init-param>  
        <param-name>cors.exposedHeaders</param-name>  
        <param-value>Set-Cookie</param-value>  
    </init-param>  
    <init-param>  
        <param-name>cors.supportsCredentials</param-name>  
        <param-value>true</param-value>  
    </init-param>  
</filter>  
<filter-mapping>  
    <filter-name>CORS</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping> 

3.修改响应头,即在后端的respone设置Http头。
@RequestMapping(value = "batchSave")
@ResponseBody
public Object acceptDataToSave(HttpServletRequest request, String data, HttpServletResponse response){

跨域的设置为蓝色背景

/**
* 采用下列方法解决post跨域问题
*/
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
response.addHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");

logger.info("begin to accept data..........");
//用于返回前端的状态标示:SUCCESS为成功;FALSE为失败
String status = "FALSE";
/*
业务逻辑
...................................
*/
Map<String,String> result = new HashMap<String,String>();
result.put("status",status);
return result;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值