来自 XMLHttpRequest 的空响应文本 [英] Empty responseText from XMLHttpRequest
问题描述
我编写了一个运行良好但返回空响应文本的 XMLHttpRequest.
I have written an XMLHttpRequest which runs fine but returns an empty responseText.
javascript如下:
The javascript is as follows:
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);
}
}
}
代码运行良好.我可以走过去,得到 readyState == 4 和 status == 200,但 responseText 始终为空.
The code runs fine. I can walk through and I get the readyState == 4 and a status == 200 but the responseText is always blank.
我收到 Error dispatching: getProperties 的日志错误(在 Safari 调试中),我似乎找不到对它的引用.
I am getting a log error (in Safari debug) of Error dispatching: getProperties which I cannot seem to find reference to.
我已经在本地和远程服务器上在 Safari 和 Firefox 中运行了代码.
I have run the code in Safari and Firefox both locally and on a remote server.
放入浏览器的 URL 将返回字符串并给出 200 的状态码.
The URL when put into a browser will return the string and give a status code of 200.
我在运行良好的 Mac Widget 中为相同的 URL 编写了类似的代码,但在浏览器中的相同代码永远不会返回结果.
I wrote similar code to the same URL in a Mac Widget which runs fine, but the same code in a browser never returns a result.
推荐答案
http://api.xxx.com/
是您域的一部分吗?否则,您将被同源政策屏蔽.
Is http://api.xxx.com/
part of your domain? If not, you are being blocked by the same origin policy.
您可能想查看以下 Stack Overflow 帖子以了解一些可能的解决方法:
You may want to check out the following Stack Overflow post for a few possible workarounds:
这篇关于来自 XMLHttpRequest 的空响应文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!