猿问

AJAX 正在返回 readystate=1

我正在使用 Flask 和 Python。从 Flask 方法中,我试图在 AJAX 调用中返回 HTML 表格行。


HTML 页面有:


<div>

<table id="tableQuestions">


</table>

//AJAX Requests to get

function loadQuestions() {


  var xmlHttp = new XMLHttpRequest();


   xmlHttp.onreadystatechange = function() {

   alert(xmlHttp.readyState + " " + xmlHttp.status);

   if (xmlHttp.readyState==4 && xmlHttp.status == 200) {

       var response = xmlHttp.responseText;

       console.log(response);

       document.querySelector("#tableQuestions").innerHTML=response;

   }

   xmlHttp.open("GET", '/gS', true);

   xmlHttp.send(null);

  }

}

Flask 路线有:


#test.mix() returns html table rows


@gbp.route('/gS')

def gS():

    test=mn()

    response = make_response(test.mix(quesCount=4),200)

    response.mimetype="text/html"

在 Safari 调试器中,我可以看到有responseText来自服务器的表数据,但readystate仍然是 1 和status= 0。

你能建议我如何克服这个问题吗?



慕莱坞森
浏览 179回答 1
1回答

长风秋雁

你有xmlHttp.open("GET", '/gS', true);xmlHttp.send(null);在你的xmlHttp.onreadystatechange回调函数中,这会导致奇怪的效果。以下代码(未经测试)应该表现得更好://AJAX Requests to getfunction loadQuestions() {&nbsp; var xmlHttp = new XMLHttpRequest();&nbsp; xmlHttp.open("GET", '/gS', true);&nbsp; xmlHttp.onreadystatechange = function() {&nbsp; &nbsp; alert(xmlHttp.readyState + " " + xmlHttp.status);&nbsp; &nbsp; if (xmlHttp.readyState==4 && xmlHttp.status == 200) {&nbsp; &nbsp; &nbsp; var response = xmlHttp.responseText;&nbsp; &nbsp; &nbsp; console.log(response);&nbsp; &nbsp; &nbsp; document.querySelector("#tableQuestions").innerHTML=response;&nbsp; &nbsp; }&nbsp; }&nbsp; xmlHttp.send(null);}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答