浅浅浅谈Ajax,跨域,以及Jsonp

大家都知道,Ajax是一种发送http请求与后台进行异步通讯的技术。在使用Ajax带来的方便之余,大家还要知道,Ajax被一种策略所限制,它叫做同源策略。
ajax的同源策略:
ajax请求的页面或资源只能是同一个域下面的资源,不能是其他域的资源,这是在设计ajax时基于安全考虑。
1. 协议相同
2. 域名相同
3. 端口相同

在这种策略的限制下,Ajax只能在满足同源策略情况下发送请求。否则就会出现“跨域”问题。
跨域:
服务器A获取不到服务器B的数据,则为跨域现象
跨域现象的表现:

(1) Cookie、LocalStorage 和 IndexDB 无法读取。

(2) DOM 无法获得。

(3) AJAX 请求不能发送。

为了解决跨域,推荐大家一种简便的方法:Jsonp
Jsonp通过动态创建Script标签,使用jQuery的Jsonp请求
使用Jsonp方法:

 $.ajax({
		 //向其他服务器发送Ajax请求,触发跨域
        url:"http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=callbackFunction", 
        type:"get",
        dataType:"jsonp",	//返回值类型为Jsonp
        jsonp:"callback",   //说明它有回调函数
        jsonpCallback:"callbackFunction",   //这个回调函数的名字叫什么,根据请求地址的内容写
        success:function(data){
            console.log(data) 	//成功获取到了目标地址的数据
        }
    })

这样就能通过Jsonp解决了跨域问题。

PS:新手文章,不出意外应该是有错误的,欢迎大家指出错误,笔芯。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值