• 技术文章 >web前端 >js教程

    JSONP原理是什么?

    GuanhuiGuanhui2020-06-24 16:40:55原创663

    JSONP原理:首先在客户端注册一个函数;然后把函数的名字传给服务器;接着服务器成JSON数据,并以Javascript语法的方式,将数据传入客户端注册的函数中;最后在客户端注册函数中接收JSON即可。

    JSONP

    JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

    JSONP的由来

    根据浏览器同源策略,所谓同源就是协议、主机、端口号都相同时成为同源。a 域的js不能直接访问 b域名的信息,但是script 标签的src属性可以跨域引用文件,jsonp是请求之后后台包装好一段json,并且把数据放在一个callback函数,返回一个js文件,动态引入这个文件,下载完成js之后,会去调用这个callback,通过这样访问数据。

    JSONP有什么用?

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

    推荐教程:《JS

    以上就是JSONP原理是什么?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:jsonp
    上一篇:懒加载是什么意思? 下一篇:前端MVVM是什么?
    大前端线上培训班

    相关文章推荐

    • 从前端和后端两个角度分析jsonp跨域访问• jsonp是什么?jsonp的原理详解• json与jsonp有什么区别?json与jsonp的区别对比• JSONP跨域请求的理解(代码示例)• jsonp如何进行跨域获取数据?(代码示例)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网