摘要:原生操作異步請求第一步創建對象判斷用戶的瀏覽器類型,決定使用何種方式對象感知狀態,當狀態改變是會觸發事件當前狀態為時,數據接收完畢輸出響應信息設置傳遞的信息小明處理中文亂碼第二步創建一個請求,并設置請求地址及異步請求方式第三步發送請求異步請
原生ajax操作
JavaScript 異步 GET請求
// 第一步:創建ajax對象 //判斷用戶的瀏覽器類型,決定使用何種方式ajax對象 if (typeof ActiveXObject != "undefined") { var version = [ "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP" ]; for (var i = 0; i <= version.length; i++) { try { var obj = new ActiveXObject(version[i]); if (typeof obj != "undefined") { break; } } catch(ex) { } } } else { var obj = new XMLHttpRequest(); } // 感知ajax狀態,當ajax狀態改變是會觸發事件onreadystatechange obj.onreadystatechange = function(){ // 當前狀態為4時,數據接收完畢 if (obj.readyState == 4 && obj.status == 200) { // 輸出響應信息 alert(obj.responseText); } } // 設置GET傳遞的信息 var name = "小明"; // 處理中文亂碼 name = encodeURIComponent(name); // 第二步:創建一個HTTP請求,并設置"請求地址"及異步請求方式 obj.open("get", "./test.php?fname=" + name + "&addr=beijing", true); // 第三步:發送請求 obj.send();
JavaScript 異步 POST請求
// 創建Ajax對象 //判斷用戶的瀏覽器類型,決定使用何種方式ajax對象 if (typeof ActiveXObject != "undefined") { var version = [ "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP" ]; for (var i = 0; i <= version.length; i++) { try { var obj = new ActiveXObject(version[i]); if (typeof obj != "undefined") { break; } } catch(ex) { } } } else { var obj = new XMLHttpRequest(); } // 感知Ajax狀態,當Ajax狀態改變時會觸發事件onreadystatechange obj.onreadystatechange = function(){ // 當前狀態為4時,數據接收完畢 if (obj.readyState == 4 && obj.status == 200) { // 輸出響應信息 alert(obj.responseText); } } // 創建一個http請求,并設置“請求地址”及異步請求方式 obj.open("post", "./test.php"); // 設置HTTP頭協議信息 obj.setRequestHeader("content-type", "application/x-www-form-urlencoded"); var info = "fname=" + "小明" + "&addr=beijing"; // 發送請求 obj.send(info);
jQuery-ajax操作自行下載并引入jquery:
jQuery 異步 GET請求
// 1.直接請求 // $(function(){ // $.ajax("./test.php", { // data:{name:"tom",age:23}, // success:function(msg){ // alert(msg); // } // }); // }); // 2.配置setting參數請求 // $(function(){ // $.ajax({ // type:"GET", // url:"./test.php", // data:{name:"tom", age:23}, // success:function(msg){ // alert(msg); // } // }); // }); // 3.通過$.ajaxSetup()方法預先設置全局參數 // $(function(){ // // 預先設置全局參數 // $.ajaxSetup({ // type:"GET", // url:"./test.php", // data:{name:"tom",age:23}, // success:function(msg){ // alert(msg); // } // }); // // 執行ajax操作,使用全局函數 // $.ajax(); // }); // 4.利用$.get()方法請求 //只發送get請求 // $(function(){ // $.get("./test.php"); // }); // 發送get請求并接受返回結果 // $(function(){ // $.get("./test.php", function(msg){ // alert(msg); // }); // }); // 發送請求并傳遞數據 // $(function(){ // $.get("./test.php", {name:"tom",age:23}, function(msg){ // alert(msg); // }); // }); // 發送get請求并傳遞數據,接受返回結果,顯示返回格式 // $(function(){ // $.get("./test.php", {name:"tom",age:23}, function(msg){ // alert(msg.name + " " + msg.age); // }, "json"); // }); // 使用$.getJSON()可以實現同樣的功能 $.getJSON("./test.php", {name:"tom", age:23}, function(msg){ alert(msg.name + " " + msg.age); });
jQuery 異步 POST請求
jquery-ajax發送post請求 Ajax無刷新評論
jQuery-ajax&php跨域請求問題
第一種方法JSONP
注意:JSONP只支持get請求
1.首先在jquery-ajax配置參數中添加這兩項dataType: "jsonp", jsonp: "callback",
例如
$.ajax({ type: "GET", url: "http://127.0.0.1/ajax2/serverjsonp.php?number=" + $("#keyword").val(), dataType: "jsonp", jsonp: "callback", success: function(data) { if (data.success) { $("#searchResult").html(data.msg); } else { $("#searchResult").html("出現錯誤:" + data.msg); } }, error: function(jqXHR){ alert("發生錯誤:" + jqXHR.status); }, });2.然后,在php中做修改
$jsonp = $_GET["callback"]; echo $jsonp . "({"success":false,"msg":"參數錯誤"})"; //輸出的字符串前面要拼接上jsonp
第二種方法XHR2
注意:其他瀏覽器都支持,但是IE必須得IE10以上,只需要服務端接口加上以下頭信息
header("Access-Control-Allow-Origin:*"); //允許所有訪問 header("Access-Control-Allow-Origin", "http://my.domain.cn:8080"); //只允許特定域名訪問 header("Access-Control-Allow-Methods:POST,GET"); //允許跨域請求的方法,可以做限定 header("Access-Control-Allow-Credentials:true"); //請求的時候是否帶上cookie信息
JavaScript-ajax請求xml數據
xml示例
wendy 35 Santa Fe Yaphet 32 Balchik Isaiah 35 Caldera
js示例
Ajax獲取XML信息 Ajax獲取XML信息
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99559.html
摘要:常見面試題什么是,為什么要使用是的縮寫。該對象在中首次引入,它是一種支持異步請求的技術。頭信息已經接收,響應數據尚未接收。同源策略是客戶端腳本尤其是的重要的安全度量標準。這樣頁面的所有都會執行這條語句就是不需要保存緩存記錄。 AJAX常見面試題 什么是AJAX,為什么要使用Ajax AJAX是Asynchronous JavaScript and XML的縮寫。他是指一種創建交互式網頁...
摘要:一個沒有返回值的函數執行的效果其實是利用它的副作用一個沒有返回值和利用副作用的函數其實就是一個黑洞。 本篇博客尚未上傳 github github 首頁(star+watch,一手動態直達): https://github.com/HCThink/h-blog 掘金 link , 掘金 專欄 segmentfault 主頁 原創禁止私自轉載 異步處理方案系列- 1.call...
摘要:事件循環事件循環是指主線程重復從消息隊列中取消息執行的過程。事件觸發時,表示異步任務完成,會將事件監聽器函數封裝成一條消息放到消息隊列中,等待主線程執行。 一. 單線程 我們常說JavaScript是單線程的。 所謂單線程,是指在JS引擎中負責解釋和執行JavaScript代碼的線程只有一個。不妨叫它主線程。 但是實際上還存在其他的線程。例如:處理AJAX請求的線程、處理DOM事件的線...
摘要:例如處理請求的線程處理事件的線程定時器線程讀寫文件的線程例如在中等等。事件循環事件循環是指主線程重復從消息隊列中取消息執行的過程。事件觸發時,表示異步任務完成,會將事件監聽器函數封裝成一條消息放到消息隊列中,等待主線程執行。 一. 單線程 我們常說JavaScript是單線程的。 所謂單線程,是指在JS引擎中負責解釋和執行JavaScript代碼的線程只有一個。不妨叫它主線程。 但是實...
閱讀 1405·2021-11-25 09:43
閱讀 2261·2021-09-27 13:36
閱讀 1114·2021-09-04 16:40
閱讀 1957·2019-08-30 11:12
閱讀 3309·2019-08-29 14:14
閱讀 567·2019-08-28 17:56
閱讀 1320·2019-08-26 13:50
閱讀 1246·2019-08-26 13:29