使用Access-Control-Allow-Origin 进行跨域POST、GET请求(非JSONP)
2017-05-25 17:37
387 查看
以下为struts2 配置下,ajax接口输出 response
reponse headr进行如下设置
发起ajax请求的地址 origin 可由 document.origin得到,
Access-Control-Allow-Origin 设置为 * ,则认为对所有 origin开放,
若设置为指定值,则只对指定origin开放,
例:如设置为 http://aaa.com,则此跨域只接受 http://aaa.com 站下发起的ajax请求
请求如下:
$.ajax({
url:"http://localhost:8010/activities/prize/searchShopInfoByName?keyword=%E5%B0%8F%E8%82%A5%E7%BE%8A",
dataType:'json',
processData: false,
type:'get',
data:"{}",
success:function(data){
alert(1);
//code
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest.status);
console.log(XMLHttpRequest.readyState);
console.log(textStatus);
}});
cors跨域时,所有ajax请求方式与同域请求一致,并非jsonp的请求形式,在chrome的network中也可看出,请求的initiator为 xmlHttpRequest;
jsonp 的为 script,即 <script> 请求。
springmvc 同理或可以使用 mvc cors注解
reponse headr进行如下设置
发起ajax请求的地址 origin 可由 document.origin得到,
Access-Control-Allow-Origin 设置为 * ,则认为对所有 origin开放,
若设置为指定值,则只对指定origin开放,
例:如设置为 http://aaa.com,则此跨域只接受 http://aaa.com 站下发起的ajax请求
请求如下:
$.ajax({
url:"http://localhost:8010/activities/prize/searchShopInfoByName?keyword=%E5%B0%8F%E8%82%A5%E7%BE%8A",
dataType:'json',
processData: false,
type:'get',
data:"{}",
success:function(data){
alert(1);
//code
},
error:function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest.status);
console.log(XMLHttpRequest.readyState);
console.log(textStatus);
}});
cors跨域时,所有ajax请求方式与同域请求一致,并非jsonp的请求形式,在chrome的network中也可看出,请求的initiator为 xmlHttpRequest;
jsonp 的为 script,即 <script> 请求。
HttpServletResponse response = ServletActionContext.getResponse(); response.setHeader("Access-Control-Allow-Origin", "http://event.dianping.com"); response.setHeader("Access-Control-Allow-Credentials", "true"); response.setContentType("text/plain;charset=UTF-8"); PrintWriter writer = null; try { writer = response.getWriter(); } catch (IOException ex) { logger.error("call Response.getWriter() failed", ex); return; } try { writer.write(content); }catch (Exception e){ logger.error(e); }finally { if(writer != null){ try { writer.close(); }catch (Exception e){ logger.error(e); } } }
springmvc 同理或可以使用 mvc cors注解
相关文章推荐
- ajax跨域jsonp并且post请求No 'Access-Control-Allow-Origin'以及执行error时readyState=4同时status=200的解决方法
- Ajax跨域get出现的Not allowed by Access-Control-Allow-Origin
- Access-Control-Allow-Origin 站点跨域请求的问题
- ajax跨域请求:No 'Access-Control-Allow-Origin' header is present on the requested resource
- 利用Access-Control-Allow-Origin响应头解决跨域请求
- chrome发起跨域ajax请求遇到 Origin null is not allowed by Access-Control-Allow-Origin 一解
- access-Control-Allow-Origin跨域请求安全隐患
- 使用Access-Control-Allow-Origin解决跨域
- 使用Access-Control-Allow-Origin解决跨域
- 使用Access-Control-Allow-Origin解决跨域
- iPhone Chrome&iPhone UC浏览器jsonp accept bug & h5 Access-Control-Allow-Origin跨域
- 利用Access-Control-Allow-Origin响应头解决跨域请求
- [Access-Control-Allow-Origin]Web中使用filter实现跨域访问问题
- jQuery中jsonp的跨域处理,no access-control-allow-origin,unexpected token
- Access-Control-Allow-Origin跨域请求以及隐患
- ajax 设置Access-Control-Allow-Origin实现跨域访问 post
- 利用Access-Control-Allow-Origin响应头解决跨域请求
- springmvc 数据传输跨域问题 access control allow origin——JSONP数据格式解决
- Golang利用Access-Control-Allow-Origin响应头解决跨域请求问题
- jquery 跨域请求 报错:(原因:CORS 头缺少 'Access-Control-Allow-Origin')