我正在通过an AJAX tutorial。我没什么网络经验,所以当出现问题时我有点惊讶,我没有追溯,没有记录,没有。
我退出了Firebug,它说我的两个send()
来电都有语法错误。
代码的相关(我认为)部分:
function getChatText() {
if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
receiveReq.open("GET", 'getChat.php?chat=1&last=' + lastMessage, true);
receiveReq.onreadystatechange = handleReceiveChat;
receiveReq.send(null); // <--- Firebug says an error is here
}
}
function sendChatText() {
if (sendReq.readyState == 4 || sendReq.readyState == 0) {
sendReq.open("POST", 'getChat.php?chat=1&last=' + lastMessage, true);
sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sendReq.onreadystatechange = handleSendChat;
var param = 'message=' + document.getElementById('txt_message').value;
param += '&name=John Doe';
param += '&chat=1';
sendReq.send(param); // <--- and also here
}
}
我甚至已经从工作教程中复制/粘贴这些函数,但我仍然得到同样的错误。我做错了什么?
确切的错误文字是:
Syntax Error:
getChatText() (line 38)
handleSendChat() (line 56)
receiveReq.send(null); (line 38)
答案 0 :(得分:1)
您在getChatText
内部发生错误(错误消息中位于调用堆栈的顶部)。
您可能使用无效语法调用 eval
;您可能忘记将JSON包装在括号中。
您应该使用Firebug的调试器来追踪错误。
编辑:尝试在encodeURIComponent
上致电lastMessage
;它可能有所帮助。 (你应该这样做以防止URL注入)