jQuery.ajax通过jsonp解决跨域

jsonp的原理,为什么跨域跨域可以使用jsonp解决?
在跨域的时候,XMLHttpRequet对象请求服务器会受到浏览器的限制,无法成功请求服务器
在跨域的情况下,$.ajax方法内部并没有使用XMLHttpRequest对象请求服务器,而是使用了其他的方式来实现的
jsonp和XMLHttpRequest对象无关!

跨域是可以请求图片的
<img src="https://gitee.com/static/images/logo-black.svg?t=158106664">
跨域也可以请求js文件,比如从CDN引入jquery插件
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.js"></script>
标签src,href都具备跨域请求的能力
src跨域请求php程序,并向后台传数据name=zs
<script src="http://www.test.com/test/php?name=zs">

jsonp的本质是使用script的src跨域请求了服务器

jsonp请求服务器步骤:
1.前端需要先创建一个方法,利用script把方法名传给后台
jQuery.ajax通过jsonp解决跨域

 2.后台在接收到数据后,在方法名后面拼接括号,在括号里面拼接json数据
jQuery.ajax通过jsonp解决跨域

3.后台会返回填充好数据的方法调用say({ "name" : "zs" , "age" : 18})
4.前端接收到返回的方法调用,会立即当做js执行,即可获取后台填充的参数,进行使用

注意点:
jsonp只能发送get请求,jsonp具有get方式的优缺点
jsonp需要前后端配合才能完成

上一篇:JSONP跨域介绍


下一篇:在一个事件中添加多个ajax