首頁 >web前端 >js教程 >原生Ajax怎麼寫

原生Ajax怎麼寫

(*-*)浩
(*-*)浩原創
2019-04-30 14:37:1511420瀏覽

寫原生Ajax的方法:先建立XMLHttpRequest物件;然後寫回呼函數onreadystatechange;接著設定請求訊息;最後發送請求即可。

原生Ajax怎麼寫

Ajax(Asynchronous JavaScript and XML的縮寫)是一種非同步請求資料的web開發技術,對於改善使用者的體驗和頁面效能很有幫助。

簡單地說,在不需要重新刷新頁面的情況下,Ajax 透過非同步請求載入後台數據,並在網頁上呈現。常見運用場景有表單驗證是否登    入成功、百度搜尋下拉方塊提示和快遞單號查詢等等。

想要對Ajax有一個全面的了解,這裡可以去Js教程中對它進行一個全方面認識。

現在Ajax經過各種優化已經變得非常方便了,例如使用Jquery只需要一行便可以使用Ajax了。

原生Ajax怎麼寫

那麼原生的Ajax是什麼樣子呢?

讓我們來看一下。

 <script>
	function ajax(url){
		//创建XMLHttpRequest对象,新版本的浏览器可以直接创建XMLHttpRequest对象,IE5或IE6没有
		//XMLHttpRequest对象,而是用的ActiveXObject对象
	       var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : ActiveXObject("microsoft.XMLHttp")
	       xhr.open("get",url,true);
	       xhr.send();//发送请求
	       xhr.onreadysattechange = () =>{
	           if(xhr.readystate == 4){//返回存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
	               if(xhr.status == 200){//返回状态码
	                   var data = xhr.responseTEXT;
	                   return data;
	               }
	           }
	       }    
	   }
</script>

readystate:

儲存 XMLHttpRequest 的狀態。從 0 到 4 發生變化。

0: 請求未初始化

1: 伺服器連線已建立

#2: 請求已接收

3: 請求處理中

4: 請求已完成,且回應已就緒

status :

200: "OK"

404: 未找到頁面

405:請求方式不正確

500:伺服器內部錯誤

403:禁止請求

Ajax有兩種請求方式:

get請求方式

<script>
	function ajax() {
		//创建核心对象
		xhr = null;
		if (window.XMLHttpRequest) {// 新版本的浏览器可以直接创建XMLHttpRequest对象
			xhr = new XMLHttpRequest();
		} else if (window.ActiveXObject) {// IE5或IE6没有XMLHttpRequest对象
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
		//编写回调函数
		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && xhr.status == 200) {
				alert(xhr.responseText)
			}
		}
		//open设置请求方式和请求路径
		xhr.open("get", "/Ajax/ajax?userId=10");//一个url还传递了数据,后面还可以写是否同步
		//send 发送
		xhr.send();
	}
</script>

post請求方式

<script>
	function ajax() {
		//创建核心对象
		xhr = null;
		if (window.XMLHttpRequest) {// 新版本的浏览器可以直接创建XMLHttpRequest对象.
			xhr = new XMLHttpRequest();
		} else if (window.ActiveXObject) {// IE5或IE6没有XMLHttpRequest对象
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
		//编写回调函数
		xhr.onreadystatechange = function() {	
			if (xhr.readyState == 4 && xhr.status == 200) {
				alert(xhr.responseText)//警告框,显示返回的Text
			}
		}
		//open设置请求方式和请求路径
		xhr.open("post", "/Ajax/ajax2");//一个servlet,后面还可以写是否同步
		//设置请求头
		xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded")
		//send 发送
		xhr.send("userId=10");
	}
</script>

以上是原生Ajax怎麼寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn