AJAX跨域传送JSON

最近项目需要通过AJAX传送JSON至restful接口,浏览器提示了跨域错误。

查了下解决办法。

参考文章地址:https://segmentfault.com/a/1190000012469713

作者文章中包含了多中语言环境下的CORS配置。

一种是使用jsonp,但是因为后台代码不能修改,放弃。

第二种就是目前使用的方式,CORS;

只要需要配置JAVA后台的web.xml和安装两个jar包即可

 cors-filter-1.7.jarjava-property-utils-1.9.jar

<!-- 跨域配置-->    
<filter>
        <!-- The CORS filter with parameters -->
        <filter-name>CORS</filter-name>
        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
        
        <!-- Note: All parameters are options, if omitted the CORS 
             Filter will fall back to the respective default values.
          -->
        <init-param>
            <param-name>cors.allowGenericHttpRequests</param-name>
            <param-value>true</param-value>
        </init-param>
        
        <init-param>
            <param-name>cors.allowOrigin</param-name>
            <param-value>*</param-value>
        </init-param>
        
        <init-param>
            <param-name>cors.allowSubdomains</param-name>
            <param-value>false</param-value>
        </init-param>
        
        <init-param>
            <param-name>cors.supportedMethods</param-name>
            <param-value>GET, HEAD, POST, OPTIONS</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>
            <!--这里可以添加一些自己的暴露Headers   -->
            <param-value>X-Test-1, X-Test-2</param-value>
        </init-param>
        
        <init-param>
            <param-name>cors.supportsCredentials</param-name>
            <param-value>true</param-value>
        </init-param>
        
        <init-param>
            <param-name>cors.maxAge</param-name>
            <param-value>3600</param-value>
        </init-param>

    </filter>

    <filter-mapping>
        <!-- CORS Filter mapping -->
        <filter-name>CORS</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ajax跨域获取JSON数据是一种常见的前端技术,用于在浏览器中通过异步请求获取不同域名下的JSON数据。下面是一种常见的实现方式: 1. JSONP(JSON with Padding):JSONP是一种利用<script>标签的src属性可以跨域加载资源的特性来实现跨域请求的方法。具体步骤如下: - 在前端页面中创建一个<script>标签,设置其src属性为目标服务器的URL,并递一个回调函数名作为参数。 - 目标服务器接收到请求后,将JSON数据包装在回调函数中返回给前端。 - 前端页面中定义回调函数,用于处理返回的JSON数据。 2. CORS(Cross-Origin Resource Sharing):CORS是一种通过在服务器端设置响应头来实现跨域请求的方法。具体步骤如下: - 在目标服务器的响应头中添加Access-Control-Allow-Origin字段,设置允许访问的域名。 - 前端页面通过XMLHttpRequest对象发送跨域请求,浏览器会自动在请求头中添加Origin字段,表示请求的来源域名。 - 目标服务器接收到请求后,检查Origin字段,并在响应头中添加Access-Control-Allow-Origin字段,表示允许该域名访问。 3. 代理服务器:使用代理服务器是另一种跨域获取JSON数据的方法。具体步骤如下: - 在同域名下创建一个代理服务器,用于转发跨域请求。 - 前端页面发送请求给代理服务器,代理服务器再将请求发送给目标服务器。 - 目标服务器返回响应给代理服务器,代理服务器再将响应返回给前端页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值