Mein D.O.H Framework wird von nodejs ausgeführt. (Version ist 1.10)XMLHTTP nicht verfügbar in D.O.H
Ich weiß, dass nodejs xmlhttprequest
oder ein anderes Modul verwenden sollte, um XHR-Anfrage abzuschließen. In meinem Fall benutze ich nicht nodejs XHR direkt, sondern benutze stattdessen dojos xhr. Anscheinend kann dojo's xhr nicht von nodejs ausgeführt werden. Weil Nodejs XHR nicht ohne npm-Modul ausführen können.
Ist das eine Möglichkeit, dieses Problem zu lösen?
Befehl:
node unittest.js load=doh test=test_custom_ajax.js
unittest.js:
global.dojoConfig = {
baseUrl: ".",
packages: [
{ name: "dojo", location: "./dojo" },
{ name: "dojox", location: "./dojox" },
{ name: "dijit", location: "./dijit" },
{ name: "my", location: "./my" }
]
}
require("./dojo/dojo.js");
custom_ajax.js:
define([
"dojo",
"dojo/_base/declare",
"dojo/_base/lang",
"dojo/request/xhr"
], function(dojo, declare, lang, xhr) {
return declare("my.custom_ajax", null, {
ajaxGet: function(url, options) {
options = options || {};
return xhr(url, {
method: "GET",
handleAs: "json",
headers: {
"Content-Type":"application/json",
"Accept":"application/json"
},
}).then(
lang.hitch(this, function(data) {
/* handle data */
if (options.onHandle) {options.onHandle(resp)}
if (options.onLoad) {options.onLoad(resp)}
if (options.onComplete) {options.onComplete(resp)}
}),
lang.hitch(this, function(err) {
/* handle error */
if (options.onError) {options.onError(resp)}
})
);
}
});
});
test_custom_ajax.js:
define([
"doh/runner",
"my/custom_ajax"
], function(doh, custom_ajax) {
doh.register("test_custom_ajax", [{
var ca = new custom_ajax();
var options = {};
ca.ajaxGet('some_url', options);
}]);
}
Ergebnis:
Error: XMLHTTP not available