Bon, j'ai un peu avancé. Je suis le principe suivant :
1 2 3 4 5 6 7 8 9 10 11
| if ($.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.contentType = "text/plain";
xdr.onload = function(){alert(xdr.responseText);};
xdr.open(query.type, query.url);
xdr.send();
} else {
// your ajax request here
$.ajax(query);
} |
L'appel s'effectue bien mais je rencontre des problèmes pour initialiser mon objet XDomainRequest à partir de ma variable "query". Avec Ajax, la réponse du serveur est incluse dans le paramètre du callback en cas de succès. Ici, le résultat est porté par l'objet XDomainRequest. Je voudrais que le onload ressemble à :
1 2 3
| xdr.onload = function(){
displayFeatures(xdr.responseText);
} |
Je dois faire ça à partir de
jquery.success = displayFeatures;
Comment dois-je m'y prendre?
// Edit :
J'ai procédé de la sorte :
1 2 3 4 5 6 7
| xdr.onload = function() {
var ch = "" + query.success;
var res = ch.match(/function() [a-zA-Z]*/);
res = res[0].substring(9);
res = res + "(" + JSON.stringify(xdr.responseText) + ")";
alert(res);
eval(res); |
Est-ce améliorable?
Il ne me reste plus qu'à générer l'URL à appeler à partir des propriétés de ma variable...
Partager