Like the title says I am using the new dojo syntax for the dojo/request/xhr, but this doesn't seem to work and throws an error while loading data while the old syntax with the same url gives the wanted result.
This is the current syntax which doesn't load data correctly:
this.get = function (url, loadFunc, errorFunc, handleFunc) {
xhr( url, {
handleAs: 'json'
}).then(function(data){
typeof loadFunc === 'function' ? loadFunc : function () { };
console.log(url+ " load");
console.log(data);
}, function(error){
typeof errorFunc === 'function' ? errorFunc : function () { };
console.log(url+" error");
console.dir(error);
}, function(handle){
typeof handleFunc === 'function' ? handleFunc : function () { };
console.log(url+" handle");
console.log(handle);
});
};
As you can see I am printing the data to the console, and I am getting the right data but the xhr request throws this Error:
"SyntaxError: Unexpected token o at Object.parse (native) at l.json (http://ajax.googleapis.com/ajax/libs/dojo/1.8.1/dojo/dojo.js:228:250) at m (http://ajax.googleapis.com/ajax/libs/dojo/1.8.1/dojo/dojo.js:227:277) at j [as handleResponse] (http://ajax.googleapis.com/ajax/libs/dojo/1.8.1/dojo/dojo.js:151:351) at XMLHttpRequest.e (http://ajax.googleapis.com/ajax/libs/dojo/1.8.1/dojo/dojo.js:154:393)"
While the following old syntax works perfectly:
this.get = function (url, loadFunc, errorFunc, handleFunc) {
dojo.xhrGet({
url: url,
handleAs: 'json',
load: typeof loadFunc === 'function' ? loadFunc : function () { },
error: typeof errorFunc === 'function' ? errorFunc : function () { },
handle: typeof handleFunc === 'function' ? handleFunc : function () { }
});
};
EDIT:
This is my JSON data:
{ "assistants" : [ { "assistants" : [ "M 11",
"M 1"
],
"name" : "M X1"
},
{ "assistants" : [ "M 2",
"M 2XX1",
"M 3"
],
"name" : "M 1"
},
{ "assistants" : [ "M 2" ],
"name" : "M 2"
},
{ "assistants" : [ ],
"name" : "M 3"
}
],
"chiefs" : [ { "chief" : "M X1",
"name" : "M 11"
},
{ "chief" : "M 11",
"name" : "M 1"
},
{ "chief" : "M X1",
"name" : "M 2"
},
{ "chief" : "M 744X1",
"name" : "M 3"
}
],
"departments" : [ { "assistants" : [ "M 11",
"M 3",
"M 21"
],
"chief" : "M X1",
"email" : "dg@somedomain.com",
"interim" : [ "M X542",
"M 4"
],
"members" : [ "M 2",
"M 3",
"M 4",
"M 5",
"M X24544"
],
"name" : "Dep1",
"notify" : [ "Dep2",
"M X2",
"M 21"
],
"resp" : "M 21",
"validators" : [ "Dep2",
"M 2",
"M 558"
]
},
{ "chief" : "M 1",
"email" : "admin@somedomain.com",
"members" : [ "M 11",
"M 12"
],
"name" : "Dep3",
"parent" : "Dep1"
},
{ "chief" : "M 11",
"email" : "commercial@somedomain.com",
"members" : [ "M 21",
"M 22"
],
"name" : "Dep4",
"parent" : "Dep1"
}
],
"orgaTestModel" : { "corporation" : "Corporation Sample",
"name" : "Orga Sample 7855"
},
"root" : "Dep1"
}
Note:
I am using dojo 1.8.1
version but I tested it with dojo 1.9.2
too, but it still doesn't work.
I can't figure out what's the problem. Is there something wrong with my code or it's another problem ?
Any help would be appreciated.