phpjsonp(phpjsonp写法)

什么是jsonp?

JSONP(JSON with Padding)是一种跨域数据请求技术,跨域请求是指当前页面和请求的资源不在同一个域名下,而是跨域名(协议、域名、端口号不同)的情况下进行数据交互。由于同源策略的限制,如果正常的 Ajax 请求不允许访问不同域名下的服务器资源,但是通过 Jsonp+IFrame,可以实现在请求时向服务器注入回调函数,从而完成跨域的数据请求。

JSONP 的实现原理

JSONP 的基本原理,在客户端,通过动态创建 script 标签来调用一个回调函数,这个回调函数的名字是在请求 URL 中指定的,服务端则将数据填充到回调函数中,返回给客户端,客户端再对数据进行处理。这样的好处是,由于是通过 script 标签引入的,而不是 Ajax 发送的 XHR 请求,所以不存在跨域问题。

服务端返回的数据格式如下:上行实例中 callback({data: "XXXXXXXXX"}) ,那么客户端获取数据后,自动执行调用自定义的函数名,也就是实际开发中所定义的回调处理函数。

JSONP 与 Ajax 对比

JSONP 和 Ajax 都可以实现数据的异步请求,完成页面数据的局部刷新,而且都可以发出跨域请求,还有一些共同的优点。但是,两者也存在差异:

  • JSONP 只支持 GET 请求方式,而 Ajax 支持 HTTP 的 GET 和 POST 请求方式。
  • JSONP 只能实现异步数据请求,而 Ajax 既可以同步请求,也可以异步请求。
  • JSONP 依赖 script 标签和回调函数,后端服务器需要进行特殊的处理,而 Ajax 依赖 XHR 对象,和后端服务器进行交互,如果同一域名下则更方便。
  • JSONP 能很好地处理跨域请求,而 Ajax 则遵守同源策略。

结语

JSONP 技术已经存在很长时间,但是它并不是一项新技术。得益于其轻量级,灵活性以及跨域的功能,所以它非常适合于访问非同源服务器中的数据。但是在现在的前端趋势中,JSONP 通常仅用于不支持 CORS 的老旧浏览器中。CORS 是现代浏览器支持的标准的跨域资源共享机制,它是 JSONP 的新兴替代方案,而且更加安全和实用,开发过程也较为简单。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/php-z8-2.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年5月3日 上午2:56
下一篇 2023年5月3日 上午2:56

猜你喜欢