我一直在尋找AJAX純JavaScript(沒有jQuery)的學習目的,並遇到了這個video, along with the code (shown below)如何使一個。然而,它適用於GET
方法,我不確定如何調整它以接受其他參數,以便函數可用於POST
或GET
,具體取決於我指定的參數。例如,行xhr.open('GET', url, true);
和xhr.send('');
都是GET
- 特定(該函數中的所有其他行都是相同的GET
和POST
方法) - 我希望能夠指定是使用POST
還是GET
作爲參數function load
爲xhr.open
和function load
爲xhr.send('');
如何將此AJAX請求函數(原始Javascript)轉換爲使用POST而不是GET?
例如一個字符串,如"username="+username+"&password="+password
,下面的功能是用於GET和使用這樣load('emails.php', function(xhr) {...}
。我想使用的功能,像這樣:load('emails.php', 'POST', '"username="+username+"&password="+password' function(xhr) {...}` for POST and
負載( 'emails.php', 'GET', '',函數(XHR){...}`
的功能AJAX的GET:
function load(url, callback) {
var xhr;
if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
else {
var versions = ["Microsoft.XmlHttp",
"MSXML2.XmlHttp",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.5.0"];
for(var i = 0, len = versions.length; i < len; i++) {
try {
xhr = new ActiveXObject(versions[i]);
break;
}
catch(e){}
} // end for
}
xhr.onreadystatechange = function() {
if((xhr.readyState < 4) || xhr.status !== 200) return;
callback(xhr);
};
xhr.open('GET', url, true);
xhr.send('');
}
我的標題是不正確的 - 我試圖找到一種方法來添加2個額外的參數到原始函數,以便根據參數,我可以使用相同的函數來執行GET或POST(例如在原始後)。我不想將函數從GET轉換到POST,只需添加對POST的支持。對困惑感到抱歉。 – Iteration
我不確定其他參數是什麼,但是您似乎可以傳遞一個名爲method的參數,它將'GET'或'POST'作爲字符串並將該字符串用作xhr.open中的第一個參數()。然後,您可以添加一個名爲body的參數,該參數可以被檢查爲undefined,然後傳入xhr.send()。希望能幫助你的初衷。 –