Ajax跨域访问

由于HTTP的CORS标准,Ajax在跨域访问时被阻止。 跨域资源共享标准( cross-origin sharing standard ),在Ajax、字体、drawImage应用情况下,需要对请求或相应做设置才能跨域访问。

Ajax跨域访问解决方案

1 CORS在服务端设置response对象的header参数

Access-Control-Allow-Origin
Access-Control-Allow-Method
提示:参数可以通过Filter或Interceptor技术进行设置。Spring提供了@CrosOrigin注解简化应用。

2 jsonp(只能解决get请求跨域)

JSONP 是 JSON with padding(填充式 JSON 或参数式 JSON)的简写。 JSONP实现跨域请求的原理简单的说,就是动态创建< script>标签,将返回结果做成script代码函数调用的参数返回。由于< script>代码不受同源策略访问的限制所以可以跨域访问返回的。

$.ajax({
    url : "https://api.douban.com/v2/book/search",
    type : "GET",
    dataType : "jsonp", // 返回的数据类型,设置为JSONP方式
    jsonp : 'callback', //指定一个查询参数名称来覆盖默认的 jsonp 回调参数名 callback
    jsonpCallback: 'handleResponse', //设置回调函数名
    ...
}

提示:jsonp方式需要在服务端也进行代码处理,将json结果拼成"函数名(json结果)"格式返回。

3 使用代理模式

Ajax跨域访问—》代理(Java+HttpClient工具+CORS设置)—》微信服务接口API

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值