ajax跨域请求的解决办法

什么是跨域请求

阻止ajax跨域请求是客户端出于安全考虑设的一道坎,只要是在不同域名下一个请求ajax另一个返回数据必然是不通的。

解决ajax跨域请求的几种办法

写入允许跨域的header头

这是最简单高效的一种方式header头的写法是这样的:

"Access-Control-Allow-Origin: http://a.com"//允许http://a.com跨域调取
"Access-Control-Allow-Origin: *"//允许所有域名跨域调取

通过中间服务器调取数据形成接口

大多数的服务端语言都会有一个方法叫做curl,这个方法的一般作用就是模拟客户端表单提交和从接口读取数据,如果存在跨域问题的话我们可以在本服务器编写一个curl来调取另一个域名下的数据接口,再写成接口或ajax来给本域名下使用,

这种方法就是实现起来太麻烦写的代码量偏多是没有办法时候的办法一般不会用的。

再一种就是jsonp方法

这种方法其实是很久之前就存在的一种独辟蹊径的方法,它的产生基于我们web前端的这么几个特点,

  1. 首先src所读取的资源不受跨域限制。
  2. js可以直接用src读取。
  3. js天生支持json,使用json通信没有障碍(当然并非只能用json通信)
  4. 服务器可以打包任意字符串,就可以打包成js执行方法的样子打包给src调取。

jsonp的实现demo

写在下一个博客吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值