跨域简单了解(jsonp)

跨域只要协议、域名、端口有任何一个不同,都被当作是不同的域。


因为存在不同的域,在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。


jsonpjson+padding,可理解为把JSON填充到一个盒子里。

像这样:callbackFunction(["customername1","customername2"]);

菜鸟教程中的例子,JSONP由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面调用函数,而数据就是传入回调函数中的JSON数据。js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入。


但是,使用jsonp跨越,只支持GET请求而不支持POST等其它类型的HTTP请求;只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行js调用的问题。


其他跨越方法还有:

CORS

通过修改document.domain来跨子域

使用window.name来进行跨域

使用HTML5中新引进的window.postMessage方法来跨域传送数据

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...