0
您好,我正在使用提交給C++ cgi程序的ajax。我遇到的問題是readyState總是1.我不明白我做錯了什麼。Ajax readyState總是等於1
var asyncRequest; // XMLHttpRequest object
try
{
asyncRequest = new XMLHttpRequest();
// Register event handler
asyncRequest.onreadystatechange = StateChange;
// Prepare to post data to URL asynchronously
asyncRequest.open("POST", "save_vote.cgi", true);
//Data to be sent to cgi program
postData="star=1&movie=test";
// Set the appropriate HTTP request headers
asyncRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
asyncRequest.setRequestHeader("Content-length", postData.length);
// Make request
asyncRequest.send(postData);
}
catch (exception)
{
alert("Request failed: " + exception.message);
}
}
function StateChange()
{
// Make sure request has completed with 200 OK status
//alert(asyncRequest.status)
if (asyncRequest.readyState == 4 && asyncRequest.status == 200)
{
alert("Hello");
}
}
這裏是CGI程序
#include "cgi.h"
#include <fstream>
int main()
{
cout << "Content-type: text/html\n\n";
ParseInputParameters();
ofstream fout;
if (fout.fail())
{
cout << "CGI Error - Couldn't open file for appending for appending.";
return 0;
}
//message to be sent back in the response text
cout << "OK";
fout.close();
return 0;
}
顯示的代碼是否爲EXACT代碼? 'var asyncRequest;'之前有什麼?如果它是一個函數,'asyncRequest'變量被私有包裝,''ReadyState(){}''中的'asyncRequest'變量不代表預期的XHR對象。 –
是的,它在一個名爲ajaxUpdate的函數中。之前沒有太多的功能名稱。那麼在readyState函數中代表asyncRequest變量的解決方案是什麼? –