长期读者,第一次海报。非常感谢任何帮助。
我使用JavaScript制作了一个AJAX查询。该脚本工作正常,界面做我想要的,但Firefox给我一个与被击中的PHP文件相关的错误消息。这很奇怪,因为它似乎表明PHP中存在语法错误,但这没有任何意义。这是错误:
错误:语法错误 源文件:http://www.mysite.com/includes/ajax.php?action=checkpsudo&value=fd 行:1,列:1 源代码: 是
Javascript在下面。有人可以帮帮我吗?感谢。
var ajaxobject = createajaxobjectObject();
function createajaxobjectObject() {
if (window.XMLHttpRequest) { // Mozilla, Safari,...
ajaxobject = new XMLHttpRequest();
if (ajaxobject.overrideMimeType) {
// set type accordingly to anticipated content type
ajaxobject.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
ajaxobject = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxobject = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!ajaxobject) {
alrt('Cannot create XMLHTTP instance');
return false;
}
return ajaxobject;
}
function checkpsudo(value) {
if (value == "") {
document.getElementById('feedback').innerHTML = "Please select a psudonym";
document.getElementById('feedback').className = "fail";
document.getElementById('done').disabled=true;
} else {
ajaxobject.onreadystatechange = function() { check(); };
ajaxobject.open('GET', '/includes/ajax.php?action=checkpsudo&value='+value, true);
ajaxobject.send(null);
}
}
function check() {
if (ajaxobject.readyState == 4) {
//IF WE GOT OUR CHAT XML BACK CORRECTLY
if (ajaxobject.status == 200) {
var response = ajaxobject.responseText;
var value = document.getElementById('psudoentry').value;
if(response=='no') {
document.getElementById('feedback').innerHTML = "'" + value + "' is already being used";
document.getElementById('feedback').className = "fail";
document.getElementById('done').disabled=true;
} else {
document.getElementById('feedback').innerHTML = "'" + value + "' is available";
document.getElementById('feedback').className = "success";
document.getElementById('done').disabled=false;
}
} else {
alert('There was a problem with the request.');
}
}
}
答案 0 :(得分:1)
看起来你的PHP可能会生成通知或警告 - 然后生成的XML中的第一件事不是XML元素,而是字符串“Notice:etc. etc.”,这会导致浏览器抱怨它得到的东西与它预期的格式不符。根据我的经验,有时这会破坏一切,有时候没有任何明显的效果。我会在您的服务器上关闭通知和警告 - 如果这样可以解决问题,那么您就知道从哪里开始跟踪它。
答案 1 :(得分:1)
我的第一直觉是,这不是JS的问题,而是PHP脚本输出XML。
答案 2 :(得分:0)
为什么这不合理?如果php文件有语法问题,那么ajax调用将返回错误页面,服务器会吐出,并且当FF尝试解析响应时,它将显示在FF错误控制台中