javascript – XHR responseText是空字符串

Html页面:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>xhr</title>
</head>
<body>
    <script>
        var xhr_test = new XMLHttpRequest();
        xhr_test.open("GET","xhrtest",true);
        xhr_test.send();
        alert(xhr_test.responseText);
    </script>
</body>
</html>

main.py文件:

import webapp2
from handlers import cookies,pages
application = webapp2.WSGIApplication([
        ('/xhr',pages.XHR),
        ('/xhrtest', cookies.XHRTest)
        ],
            debug=True)

请求处理程序:

class XHRTest(webapp2.RequestHandler):
    def get(self):
        self.response.write('0')

和,

class XHR(webapp2.RequestHandler):
    def get(self):
        f = open('static/html/xhr.html','r')
        self.response.write(f.read())

现在,当我点击url localhost:8080 / xhrtest时,浏览器会立即将响应0显示为页面的内容.

点击url localhost:8080 / xhr间接点击/ xhrtest,在警告框中弹出一个空字符串(responseText是一个空字符串)但是检查网络选项卡下的chrome的响应标签,我可以看到请求的响应为0 .

那么为什么xhr_test.responseText无法显示相同的响应呢?

对send的调用是异步的(您已将’async’参数设置为true),这意味着您的警报会在请求完成之前立即发生.
您应该向xhr.onreadystatechange添加一个事件监听器并使用其中的响应.

将’true’更改为’false’会使这个简单的示例有效,但在一般情况下不是一个好主意.

MDN page on Ajax解释了如何使用XMLHttpRequest.

https://stackoverflow.com/questions/19549269/xhr-responsetext-is-empty-string

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – XHR responseText是空字符串