He escrito un XMLHttpRequest que funciona bien pero devuelve un texto de respuesta vacío.Empty responseText from XMLHttpRequest
El javascript es el siguiente:
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);
}
}
}
El código funciona muy bien. Puedo avanzar y obtengo ReadyState == 4 y un estado == 200 pero el responseText siempre está en blanco.
Aparece un error de registro (en la depuración de Safari) de Error dispatching: getProperties al que no puedo encontrar referencia.
He ejecutado el código en Safari y Firefox tanto localmente como en un servidor remoto.
La dirección URL cuando se ponen en un navegador devolverá la cadena y dar un código de estado de 200.
escribí un código similar a la misma URL en un widget Mac que funciona bien, pero el mismo código en un navegador nunca devuelve un resultado
algo que he descubierto que llevó a parte de mi confusión inicial es que Safari tiene un modelo de seguridad modificado que permite que los archivos que se ejecutan localmente en el acceso solicitudes de cualquier origen Esto se hizo para que las solicitudes de acceso frío de Dashboard Widgets. Inicialmente, escribí un widget, eso funcionaría, y luego, cuando no usaba Safari o desde la máquina local, no lo hacía. Sin embargo, acabo de encontrar este ajuste. – PurplePilot