ajax 请求受同源策略影响,不允许进行请求,我们利用 script 标签的 src 属性不受同源策略的约束,利用这个特性 jsonp 需要以下步骤:
1. 动态创建<script></script>(document.createElement('script'))
2. 设置 src 属性,(src 中要包含参数 callback=fn)进行跨域请求
3. 将 <script></script>添加到页面中执行 (body.appendChild('script'))
4. 页面要提前定义好 callback。
5. 后端会返回回调函数执行并包裹参数 callback(data)
备注:
服务端不再返回 JSON 格式的数据,而是返回回调函数包裹数据(fn({name:'tom',age:18}),在 src 中进行了调用,这样实现了跨域。