美文网首页
ajax跨域请求(SpringMVC)

ajax跨域请求(SpringMVC)

作者: Vetterige | 来源:发表于2016-04-08 13:19 被阅读0次

什么是跨域

不同协议 不同域名 不同子域 不同端口 均为跨域
特别的:一个域名和其对应的ip地址也算跨域
具体见下表


跨域请求无效

默认情况下,比如在localhost:63342下使用ajax请求localhost:8800

 $.get("http://localhost:8080/api/getProducts")

会发生错误:

XMLHttpRequest cannot load http://www.baidu.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access.

解决方案

只介绍一种解决方案
在http Response header中加入“Access-Control-Allow-Origin”字段,其值设置为发起请求的域名;或者*,表示所有域名都可以跨域对此域名进行访问

函数参数中加入HttpServletResponse
调用其setHeader函数,在header中加入相应字段
代码如下

@ResponseBody
@RequestMapping(value={"api/getproducts.json"})
public String getProducts(HttpServletResponse responce){
    responce.setHeader("Access-Control-Allow-Origin","*");
    return JSON.toJSONString(productService.findAllProducts());
}

还有其他解决方案,比如使用jsonp,在此不做介绍

相关文章

  • SpringMVC 进行ajax跨域请求访问

    关于 springmvc 3.x 版本对ajax跨域请求访问 ajax 请求后,浏览器出现跨域的问题那么在当前环境...

  • ajax跨域请求(SpringMVC)

    什么是跨域 不同协议 不同域名 不同子域 不同端口 均为跨域特别的:一个域名和其对应的ip地址也算跨域具体见下表 ...

  • 彻底让你明白跨域(服务器端为node)

    跨域只是针对ajax请求的。 如果产生跨域,那么将请求不到数据。 发起ajax请求所依赖的html页面的url地址...

  • 前端跨域

    什么是ajax跨域 ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”,可以参...

  • Ajax跨域请求与SpringMVC结合的一些坑

    Ajax跨域的概念就不在这边陈述了... Ajax跨域请求真正的请求之前会进行一次预请求OPTIONS请求,为了让...

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 跨域

    什么是跨域? 为什么会发生ajax跨域?浏览器限制跨域【发出的请求不是本域】XHR请求【json】 解决思路:1:...

  • 跨域问题及解决方案

    原因 1.域名不一样 2.Ajax异步请求 解决:CORS 跨域资源共享 在网关配置SpringMVC的Cor...

  • AJAX、Servlet允许跨域请求

    1.AJAX 2.Servlet允许跨域请求 1.AJAX AJAX = Asynchronous JavaSc...

  • 跨域CORS

    CORS全称是跨域资源共享(Cross-Origin Resource Sharing),用来解决AJAX跨域请求...

网友评论

      本文标题:ajax跨域请求(SpringMVC)

      本文链接:https://www.haomeiwen.com/subject/reevlttx.html