[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":"西藍花"})';
?>
~~~
- 基本概念
- 服務器
- PHP學習
- PHP根據數據生成頁面
- form表單提交數據到服務器
- form表單查詢信息詳情頁
- 列表渲染展示以及跳轉詳情
- PHP拆分寫法
- form表單提交
- get方式提交數據補充
- post方式提交數據
- post上傳文件
- 請求報文和響應報文基本概念
- XMLHTTPRequest對象的基本使用
- 回調函數&獲取返回的數據
- ajax發送get請求
- ajax驗證用戶是否存在邏輯
- ajax發送post請求
- 新浪云使用方法
- onload 和 onreadystatechange
- XML格式
- 服務器返回XML格式數據
- JSON格式
- 服務器返回JSON格式數據
- ajax工具函數封裝
- js模板引擎
- 跨域解決方案
- JSONP
- CORS解決跨域
- 下載文件功能