您的位置:首页 > Web前端 > JavaScript

jsonp

2015-11-05 16:50 337 查看
一:同源策略限制

由于受浏览器的限制,ajax方法不允许跨域通信。如果尝试从不同的域请求数据,会出现安全错误。如果能控制数据驻留的远程服务器并且每个请求都前往同一个域,就可以避免这些安全错误。但是,如果仅停留在自己的服务器上,web应用程序还有什么用呢?如果需要从第三方服务器收集数据时,又该怎么办?

如图:在一个非www.baidu.com的域里ajax跨域请求www.baidu.com报错



同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。也就是说,受到请求的url的域必须与当前web页面的域相同。这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。

二:什么是jsonp

JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成script tags返回至客户端,通过Javascript  callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)

script标签的跨域能力

如下图所示:百度首页调用的js不是在www.baidu.com域名下的js



三:JSONP有什么用

由于同源策略的限制,XMLHttpRequest只允许请求当前源(域名,协议,端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后在服务器端输出JSON数据并执行回调函数,从而解决跨域的数据请求。

四:如何使用JSONP

五:josnp只能是get请求类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: