J'ai écrit un XMLHttpRequest qui s'exécute bien mais retourne un responseText vide.AnswerText vide de XMLHttpRequest
Le javascript est la suivante:
var anUrl = "http://api.xxx.com/rates/csv/rates.txt";
var myRequest = new XMLHttpRequest();
callAjax(anUrl);
function callAjax(url) {
myRequest.open("GET", url, true);
myRequest.onreadystatechange = responseAjax;
myRequest.setRequestHeader("Cache-Control", "no-cache");
myRequest.send(null);
}
function responseAjax() {
if(myRequest.readyState == 4) {
if(myRequest.status == 200) {
result = myRequest.responseText;
alert(result);
alert("we made it");
} else {
alert(" An error has occurred: " + myRequest.statusText);
}
}
}
Le code fonctionne très bien. Je peux passer à travers et j'obtiens le readyState == 4 et un statut == 200 mais le responseText est toujours vide.
Je reçois une erreur de log (dans le débogage de Safari) de Error dispatching: getProperties auquel je n'arrive pas à trouver de référence.
J'ai exécuté le code dans Safari et Firefox localement et sur un serveur distant.
L'URL lorsqu'il est mis dans un navigateur retournera la chaîne et de donner un code d'état de 200.
j'ai écrit un code similaire à la même URL dans un Widget Mac qui fonctionne très bien, mais le même code dans un navigateur ne renvoie jamais de résultat.
Quelque chose que j'ai découvert ce qui a conduit à une partie de ma confusion initiale est que Safari a un modèle de sécurité modifié qui permet aux fichiers en cours d'exécution d'accéder localement demandes de toute origine. Cela a été fait pour que Dashboard Widgets demandes d'accès à froid. Donc, j'ai d'abord écrit un widget, cela fonctionnerait, alors quand je n'ai pas utilisé Safari ou de la machine locale ce ne serait pas. Cependant, je viens juste de rencontrer ce tweak. – PurplePilot