前端技术之什么是AJAX跨域(二)

本文详细介绍了AJAX跨域的发生条件,包括协议、域名和端口的一致性要求。阐述了跨域的原理,利用如<script>标签的跨域能力将数据封装在JS文件中。接着,讲解了JSONP作为跨域解决方案的实现方式,以及如何通过设置dataType和jsonp属性来使用。最后,提到了使用getJSON简化跨域请求的方法,重点讨论了jsoncallback参数的作用和自动回调函数的生成。
摘要由CSDN通过智能技术生成

发生AJAX跨域的条件

  1. 先看协议是否一致
  2. 再看地址是否一致,注意在浏览器上127.0.0.1和localhost不是一个地址
  3. 最后看端口号是否一致。

跨域的原理

我们发现Web页面上调用js文件时则不受是否跨域的影响,拥有“src”这个属性的标签都却拥有跨域的能力,比如<\script>、<\img>、<\iframe>。那么跨域访问数据就有了一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理。

JSONP实现跨域

对于AJAX异步请求的方式要实现跨域可以在ajax方法里加一个dataType:'jsonp’即可实现跨域,不过此跨域是以指向js中src的方式指向后台地址,要在浏览器中成功响应数据并回显一些效果,此时的success方法失效了,但后台可以传递js格式的数据,因此可以在前端写对应的函数及实现逻辑,后台接收这个函数及赋予数据,浏览器即可成功响应数据。

但这种方式还是不太友好,为了前端也更好的使用,可以在ajax方法里加个jsonp属性,属性值是一个方法,传给后台接收的参数,在加了jsonp后可以调用原来的success函数了,即原来的回调函数有用了。

getJSON简化跨域请求

对于上文在ajax中采用jsonp实现跨域可以采用getJSON方法进一步简化跨域请求,具体格式如下:

$.getJSON(
                url,//在这里必须加jsoncallback=?
                data,
                function (data) {

                }
            )

为什么要加jsoncallback=?原因在于可以自动的生成回调函数名,将后台返回的数据响应到function函数中。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༄༊心灵骇客༣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值