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
- Bigkey問題的解決思路與方式探索
- spring mvc解決ajax跨域問題SpringMVC跨域
- 巢狀ScrollView問題解決思路巢狀View
- JQuery中ajax的使用與快取問題的解決方法jQuery快取
- JVM 問題分析思路JVM
- csrf解決Ajax請求跨站問題
- redis中大key問題的解決思路Redis
- TongWeb下亂碼問題解決思路Web
- 解決吞吐效能問題時的思路
- 【體系結構】與Checkpoint相關的問題解決思路
- 解決ajax跨域問題的多種方法跨域
- 資料庫層面問題解決思路資料庫
- 記錄一次重灌電腦黑屏問題解決辦法與解決思路
- 從“股票問題”談動態規劃問題的解決思路動態規劃
- 理性分析 AJAX 跨域問題跨域
- JavaScript 中精度問題及解決思路彙總JavaScript
- Oracle資料不同步的問題分析和解決思路Oracle
- Java應用上雲後被kill問題分析與解決Java
- Linux系統中CPU佔用率較高問題排查思路與解決方法Linux
- 磁碟問題定位與解決
- MySQL主從不同步問題分析與處理思路MySql
- mysql的ERROR 1231 (42000)問題原因及解決方法MySqlError
- Puppet監控速查手冊:問題/原因→解決方案
- 【問題解決】remote: parse error: Invalid numeric literal at line 1, column 20,解決思路REMError
- 解決ajax get post方式提交中文引數亂碼問題
- 六西格瑪解決問題的思路是什麼?
- Redis擊穿、穿透、雪崩產生原因以及解決思路Redis穿透
- 粘包問題原因和解決方法
- 記一次記憶體溢位問題的排查、分析過程及解決思路記憶體溢位
- 基於 HTTP Digest 與 CURL 以及 Requests 的相容性問題:解決方案與推測原因HTTP
- 解決ajax中ie快取問題(手動新增時間戳)快取時間戳
- Docker殺掉了容器?問題分析與解決過程全面覆盤Docker
- Java中9種常見的CMS GC問題分析與解決JavaGC
- Sqlserver並行等待CXPACKET、CXCONSUMER問題的解決思路和案例SQLServer並行
- iOS App 上架內購3.1.1問題被拒解決思路iOSAPP
- MySQL 在併發場景下的問題及解決思路MySql
- 【效能測試】常見的效能問題分析思路(一)道與術