本文目錄一覽:
- 1、ajax請求原生怎麼寫
- 2、怎麼用原生js請求php的jsonp
- 3、怎麼用原生JS實現類似jQuery的ajax
- 4、我想用AJAX實現在js里調用PHP里的函數,不知道怎麼寫啊,沒學過Ajax
ajax請求原生怎麼寫
原生js實現Ajax方法:
var Ajax={
get: function(url, fn) { var obj = new XMLHttpRequest();
// XMLHttpRequest對象用於在後台與服務器交換數據
obj.open(‘GET’, url, true); obj.onreadystatechange = function() {
if (obj.readyState == 4 obj.status == 200 || obj.status == 304) {
// readyState == 4說明請求已完成
fn.call(this, obj.responseText);
//從服務器獲得數據
}
};
obj.send(); }, post: function (url, data, fn) {
// datat應為’a=a1b=b1’這種字符串格式,在jq里如果data為對象會自動將對象轉成這種字符串格式
var obj = new XMLHttpRequest(); obj.open(“POST”, url, true); obj.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”);
// 添加http頭,發送信息至服務器時內容編碼類型
obj.onreadystatechange = function() {
if (obj.readyState == 4 (obj.status == 200 || obj.status == 304)) {
// 304未修改
fn.call(this, obj.responseText);
}
};
obj.send(data);
}
}
注釋:
1. open(method, url, async) 方法需要三個參數:
method:發送請求所使用的方法(GET或POST);與POST相比,GET更簡單也更快,並且在大部分情況下都能用;然而,在以下情況中,請使用POST請求:
url:規定服務器端腳本的 URL(該文件可以是任何類型的文件,比如 .txt 和 .xml,或者服務器腳本文件,比如 .asp 和 .php (在傳迴響應之前,能夠在服務器上執行任務));
async:規定應當對請求進行異步(true)或同步(false)處理;true是在等待服務器響應時執行其他腳本,當響應就緒後對響應進行處理;false是等待服務器響應再執行。
2. send() 方法可將請求送往服務器。
3. onreadystatechange:存有處理服務器響應的函數,每當 readyState 改變時,onreadystatechange 函數就會被執行。
4. readyState:存有服務器響應的狀態信息。
5. responseText:獲得字符串形式的響應數據。
6. setRequestHeader():POST傳數據時,用來添加 HTTP 頭,然後send(data),注意data格式;GET發送信息時直接加參數到url上就可以,比如url?a=a1b=b1。
怎麼用原生js請求php的jsonp
AJAX的核心是XMLHttpRequest。
一個完整的AJAX請求一般包括以下步驟:
實例化XMLHttpRequest對象
連接服務器
發送請求
接收響應數據這些只是一些基本的 具體的可以去後盾裡面查詢
裡面有詳細的教學
怎麼用原生JS實現類似jQuery的ajax
建議你這樣試試看:
ajax函數:
function ajax(opt) {
opt = opt || {};
opt.method = opt.method.toUpperCase() || ‘POST’;
opt.url = opt.url || ”;
opt.async = opt.async || true;
opt.data = opt.data || null;
opt.success = opt.success || function () { };
var xmlHttp = null;
if (XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else {
xmlHttp = new ActiveXObject(‘Microsoft.XMLHTTP’);
} var params = [];
for (var key in opt.data) {
params.push(key + ‘=’ + opt.data[key]);
}
var postData = params.join(”);
if (opt.method.toUpperCase() === ‘POST’) {
xmlHttp.open(opt.method, opt.url, opt.async);
xmlHttp.setRequestHeader(‘Content-Type’, ‘application/x-www-form-urlencoded;charset=utf-8’);
xmlHttp.send(postData);
}
else if (opt.method.toUpperCase() === ‘GET’) {
xmlHttp.open(opt.method, opt.url + ‘?’ + postData, opt.async);
xmlHttp.send(null);
}
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 xmlHttp.status == 200) {
opt.success(xmlHttp.responseText);
}
};
}
2.參數說明(清渭技術–):
3.使用示例:
ajax({
method: ‘POST’,
url: ‘post.php’,
data: {
param1: ‘value1’,
param2: ‘value2’,
},
success: function (response) {
console.log(response) ;
}
})
PS:希望本文對你有所幫助~qingwei.tech
我想用AJAX實現在js里調用PHP里的函數,不知道怎麼寫啊,沒學過Ajax
AJAX其實就是HTTP的GET、POST去調用一個獨立的服務器上的PHP文件,不能是調用某個文件的函數。
原創文章,作者:GQJLA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/330687.html