關於讀取本地 JSON 文件引起的跨域問題
參考網址:https://blog.csdn.net/jiaoshuaiai/article/details/78417683
在使用 Ajax 讀取本地 JSON 文件時,Chrome 瀏覽器會出現跨域問題(一種針對外部網站訪問本地數據的安全措施)
網上流傳的解決方案,最常用的是
- 使用 JSONP 處理 JSON 文件(FE 常用解決方法)
- 利用 Nginx 搭建反向代理功能(BE 常用解決方法)
- 使用編碼工具搭建出本地的 web 服務器(...掩耳盜鈴方法)
使用 JSONP 進行跨域
原理:使用 <script>
標簽引入 JSON 文件,並將 JSON 文件內的數據包裹在一個函數中
langEn({
"name": "name",
"password": "password",
"email": "email"
})
定義包裹在 JSON 中的方法,並引入到 html 中
當然也可以直接在
<script>
標簽對中定義,但記得定義完后要引入 JSON 文件
function langEn(data) {
// 這里可以直接對JSON文件中的數據進行處理
console.log(data);
}
在 html 中引入 JSON 文件,並在文件地址后加上回調函數(在上述例子中的 langEn
)
方法定義后面必須跟着對應的 JSON 文件
<body>
<script type="text/javascript" src="loadLanguage.js"></script>
<script type="text/javascript" src="En.json?cb=langEn"></script>
</body>