XMLHttpRequest 总是得到空响应,而通过浏览器直接 ping 相同的 url 会得到正确的响应
这是我的 javascript 片段:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
if (this.status == 200) {
...
}
}
}
var url = 'http://localhost:3000/questions/1';
xhr.open('GET', url, true);
xhr.send();
this.status 始终为 0,并且 this.responseText 始终为 ""
如果我直接从浏览器 ping url 'http://localhost:3000/questions/1',我会得到正确的 html 。
仅供参考,我正在对我的机器上运行的 Rails 服务器执行 ping 操作。
Here is my javascript snippet:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4) {
if (this.status == 200) {
...
}
}
}
var url = 'http://localhost:3000/questions/1';
xhr.open('GET', url, true);
xhr.send();
this.status is always 0, and this.responseText is always ""
If i ping the url 'http://localhost:3000/questions/1' directly from the browser, i get the correct html back.
FYI, i am pinging a rails server i am running on my machine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我会尝试在代码中将
this
替换为xhr
。函数声明将通过闭包保留 xhr 变量。我不确定回调函数时this
会是什么。I would try replacing
this
withxhr
in your code. The function declaration will keep thexhr
variable via the closure. I am not sure whatthis
will be when the function is called back.