2021-06-27

JSONP学习笔记

什么是jsonp

jsonp是利用src这个属性绕开同源策略,给服务器发送get请求,来实现跨域。

动态创建script标签

JSONP跨域的使用流程:

  • *1、先去声明一个函数,这个函数有一个形参,这个形参会拿到我们想要下载的数据,使用这个参数做后续数据的处理

  • 2、在需要下载数据的时候,动态创建script标签,将标签src属性设置成,下载数据的链接

  • 3、当script插入到页面上的时候,就会,调用已经封装好的函数,将我们需要的数据传过来。*

jsonp的优缺点

1.优点

  • 1.1它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制,JSONP可以跨越同源策略;

  • 1.2它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持

  • 1.3在请求完毕后可以通过调用callback的方式回传结果。将回调方法的权限给了调用方。这个就相当于将controller层和view层终于分开了。我提供的jsonp服务只提供纯服务的数据,至于提供服务以
    后的页面渲染和后续view操作都由调用者来自己定义就好了。如果有两个页面需要渲染同一份数据,你们只需要有不同的渲染逻辑就可以了,逻辑都可以使用同
    一个jsonp服务。

2.缺点

  • 2.1它只支持GET请求而不支持POST等其它类型的HTTP请求

  • 2.2它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

  • 2.3 jsonp在调用失败的时候不会返回各种HTTP状态码。

  • 2.4缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个
    jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的。

上一篇:vue jsonp (转载)


下一篇:跟我学机器视觉-HALCON学习例程中文详解-测量圆环脚宽间距