相同点:
都是从客户端向服务端发送请求。从服务端请求数据的方式
Jsonp和Ajax的区别
- Ajax属于同源策略,Jsonp属于非同源策略
- 原理不一样:
1.Ajax:new XMLHttpRequest
2.jsonp:通过动态创建script标签,添加src属性,前端通过传一个callback给后台,后台返回函数调用,前台将返回的函数调用再进行解析 - 返回值不一样:
1.Ajax返回的是一个对象
2.jsonp返回的是字符串 - 请求方式不一样:
Ajax有多种请求方式—(get,post,delete,put,patch)
jsonp:只有get
JSONP的缺陷
- 没有关于JSONP调用的错误处理,一旦调用失败,浏览器会以静默的方式处理。
- 他只支持
get
请求,只能获取数据 - 管理系统不能JSONP
所以==对于一些需要对安全性有要求的跨域请求,JSONP的使用需要谨慎一点了。
JSONP的优势
JSONP对于老浏览器兼容性方面比较良好,因此,对于那些对IE8以下仍然需要支持的网站来说,仍然被广泛应用