我有一個問題,試圖通過添加參數來定義如何處理返回的結果來改進我的ajax函數的功能。解析涉及ajax的函數參數
所以我想實現的是一種方法來告訴函數將結果附加到給定元素的id
。但我很難理解如何添加此功能。
這是我當前的代碼:
var ajax = new function(){
var self = this;
self.x = function() {
if (typeof XMLHttpRequest !== 'undefined') {
return new XMLHttpRequest();
}
};
self.send = function(url, callback, method, data, sync) {
var x = self.x();
x.open(method, url, sync);
x.onreadystatechange = function() {
if (x.readyState == 4) {
callback(x.responseText)
}
};
if (method == 'POST') {
x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
}
x.send(data)
};
self.get = function(url, data, callback, sync) {
var query = [];
for (var key in data) {
query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
}
self.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, sync)
};
};
我然後做出一個Ajax請求就像這樣:
//get the html file, and then call a function
ajax.get(dir.layout+'login.html',false,
function(){
elements.addTemplate(data,'parent',true);
});
在Chrome瀏覽器中XHR顯示正確的數據和內容,所以我知道的那部分作品。在我elements.loadTemplate
功能,我有這三條線與它們的實際值:
elements.addtemplate(data,div_id,append){
console.log(data); //shows:
console.log(div_id); //shows string: parent
console.log(append); //shows: true
}
現在的問題是數據是空白的,當我希望它包含在這種情況下login.html
,我只是請求的HTML文件的內容( )。我想知道爲什麼它會顯示爲空白,我如何解決它?
FYI:我知道的jQuery的,但我想學習語言的香草以及如何它在我使用圖書館之前有效。 – Sir
在你的代碼中,你期望'data'包含你請求的頁面的HTML。你已經證明'append'是真的,這很有趣,因爲在你的代碼中沒有叫'append'的變量。也許在你沒有顯示的代碼中存在一個主要問題 –
@JaromandaX請參閱編輯以查看我的'elements.addtemplate'函數以瞭解var名稱的來源。 – Sir