🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] >[success] # JSONP <br/> [jsonp菜鸟教程](https://www.runoob.com/json/json-jsonp.html) [关于jsonp帖子](https://segmentfault.com/a/1190000008445998) <br/> ~~~ 1. 'JSONP'是'json'的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即'跨域'读取数据。 2. 为什么我们从不同的域(网站)访问数据需要用到'JSONP'呢?这是因为同源策略。 3. 'JSONP'实现跨域请求的原理简单的说,就是动态创建'<script>'标签,然后利用'<script>'的‘src’不受 同源策略约束来'跨域'获取数据。 ~~~ <br/> >[success] ## 前端代码 <br/> 1. index.html ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jsonp</title> </head> <body> 1. <!-- dom元素的src属性,支持跨域访问资源 --> <img src="https://www.baidu.com/img/bd_logo1.png"> 2. <!-- 还有哪些元素有src属性 --> <!-- JSONP就是利用了src属性,支持跨域获取资源 --> <!-- <script src="http://10.1.2.160/backData.js"></script> --> 3. <!-- JSONP真实用法 --> <!-- <script src="http://10.1.2.160/backData.php"> // 相当于跨域接口中的数据返回到了这个script标签中 // console.log("数据给你拿去") </script> --> 4. <script> function doSomething(data) { // 第一步 console.log(data) // 第三步 这里接口数据返回了 } </script> <!-- 第二步,这里相当是get请求拼接参数参数名为callback --> <script src="http://10.1.2.160/backData.php?callback=doSomething"></script> </body> </html> ~~~ <br/> >[success] ## 后端代码 <br/> ~~~ <?php // 接收前端传过来的参数doSomething $methodName = $_GET['callback']; // 把数据拼接回调函数中 echo $methodName.'({"name":"杰克","food":"西蓝花"})'; ?> ~~~