Ajax跨越問題原因分析與解決思路
1.什麼是AJAX跨域問題
簡單來說,就是前端呼叫後端服務介面時
如果服務介面不是同一個域,就會產生跨域問題
2.AJAX跨域場景
前後端分離、服務化的開發模式
前後端開發獨立,前端需要大量呼叫後端介面的場景
只要後端介面不是同一個域,就會產生跨域問題
跨域問題很普遍,解決跨域問題也很重要
3.AJAX跨域原因
瀏覽器限制:瀏覽器安全校驗限制
跨域(協議、域名、埠任何一個不一樣都會認為是跨域)
XHR(XMLHttpRequest)請求
4.AJAX跨域問題解決思路
瀏覽器:瀏覽器取下跨域校驗,實際價值不大
XHR:不使用XHR,使用JSONP,有很多弊端,無法滿足現在的開發要求
跨域:被呼叫方修改支援跨域呼叫(指定引數);呼叫方修改隱藏跨域(基於代理)
5.JSONP解決跨域訪問
1.服務端JSONP格式資料
如客戶想訪問 : http://www.runoob.com/try/ajax/jsonp.php?jsonp=callbackFunction。
假設客戶期望返回JSON資料:[“customername1”,”customername2”]。
真正返回到客戶端的資料顯示為: callbackFunction([“customername1”,”customername2”])。
服務端檔案jsonp.php程式碼為:
jsonp.php 檔案程式碼
<?php
header(`Content-type: application/json`);
//獲取回撥函式名
$jsoncallback = htmlspecialchars($_REQUEST [`jsoncallback`]);
//json資料
$json_data = `["customername1","customername2"]`;
//輸出jsonp格式的資料
echo $jsoncallback . "(" . $json_data . ")";
?>
2.客戶端
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSONP 例項</title>
<script src="http://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script>
</head>
<body>
<div id="divCustomers"></div>
<script>
$.getJSON("http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) {
var html = `<ul>`;
for(var i = 0; i < data.length; i++)
{
html += `<li>` + data[i] + `</li>`;
}
html += `</ul>`;
$(`#divCustomers`).html(html);
});
</script>
</body>
</html>
相關文章
- qeephp 解決跨越問題PHP
- ajax資料無法更新問題原因及解決
- AIX問題解決思路AI
- Bigkey問題的解決思路與方式探索
- JVM 問題分析思路JVM
- JQuery中ajax的使用與快取問題的解決方法jQuery快取
- 解決吞吐效能問題時的思路
- TongWeb下亂碼問題解決思路Web
- 巢狀ScrollView問題解決思路巢狀View
- redis中大key問題的解決思路Redis
- 第十篇:非均衡分類問題的思考與問題與解決思路
- zt_enqueue:HW問題分析與解決ENQ
- Error in GetCurrentDir(): 13 問題分析與解決Error
- 【體系結構】與Checkpoint相關的問題解決思路
- spring mvc解決ajax跨域問題SpringMVC跨域
- csrf解決Ajax請求跨站問題
- 資料庫層面問題解決思路資料庫
- ffmpeg 多路實時問題之解決思路
- 記錄一次重灌電腦黑屏問題解決辦法與解決思路
- 解決ajax跨域問題的多種方法跨域
- 從“股票問題”談動態規劃問題的解決思路動態規劃
- JavaScript 中精度問題及解決思路彙總JavaScript
- oracle 資料庫解決問題思路總結Oracle資料庫
- jQuery ajax請求返回401問題解決方案jQuery
- 理性分析 AJAX 跨域問題跨域
- Oracle資料不同步的問題分析和解決思路Oracle
- 六西格瑪解決問題的思路是什麼?
- 微服務改造中解決跨庫問題的思路微服務
- Java應用上雲後被kill問題分析與解決Java
- 磁碟問題定位與解決
- MySQL主從不同步問題分析與處理思路MySql
- Puppet監控速查手冊:問題/原因→解決方案
- 小紅點解決方案思路分析
- 解決「問題」,不要解決問題
- WebView與JS、Ajax跨域問題WebViewJS跨域
- Redis擊穿、穿透、雪崩產生原因以及解決思路Redis穿透
- Linux系統中CPU佔用率較高問題排查思路與解決方法Linux
- 微信接收不到訊息原因分析與解決辦法