AJAX xmlhttp.responseText
AJAX xmlhttp.responseText
我已经绞尽脑汁几个小时了,不明白为什么字符串比较不起作用。在下面的代码中,我进行了一个xmlhttp调用并获得一个响应文本。我得到调用的PHP文件是返回正确的响应字符串"NOAD"
,并且在测试中适当的时候显示NOAD
。然而,当调用返回NOAD
时,我想识别它,但是由于某些原因,在xmlhttp.responseText == comparisonText
下面的调用中,它没有正确地比较两者。为什么xmlhttp.responseText
打印NOAD,但我不能在比较器中使用它?
function loadXMLAdImage1Doc(currentScenarioTime)
{
var returnText = "Not Here";
var comparisonText = "NOAD";
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if (xmlhttp.responseText == comparisonText)
{
document.getElementById("AJAXTEST").innerHTML =returnText;
} else {
document.getElementById("AJAXTEST").innerHTML =xmlhttp.responseText;
}
}
}
好的,感谢Luth为我指明了正确的方向。我解决了我的问题,但我不确定xmlhttp.responseText中的问题是什么,或者是导致它的用户错误。
我的PHP文件的返回文本在返回的字符串之前放置了一个不可见的字符(在测试中,我会认为它在结果之前是不可见的,但要想清楚)。从理论上讲,这不应该发生。。。我的PHP返回一个简单的字符串:
..do some MYSQL queries..
$AdLink = mysql_result($result, 0);
if ($AdLink == "") {
echo "NOAD";
} else
{
echo $AdLink;
}
因此,PHP文件应该向名为"NOAD"的xmlhttp.responseText调用发送一个4个字符的返回屏幕。但在测量字符串长度时发现,它发送了一个5个字符的字符串,其中包含一些不可见的字符BEFORE"NOAD",但该字符没有显示在屏幕上,因此导致比较器出错。我用下面的代码删除了这个字符,效果很好。。。
returnText = xmlhttp.responseText;
var returnlength = returnText.length;
returnText = returnText.substring(1, returnlength);
我不知道这个字符是什么,是我的PHP代码有问题还是xmlhttp.responseText调用有问题,但如果您正在处理这个调用,请注意。
相关文章:
- xmlhttp.responseText不显示文本
- 使用json_encode通过xmlhttp.responseText发送特殊字符(即caron)
- xmlhttp.responseText中显示的标记
- xmlHttp.responseText未知错误定义
- xmlhttp.responsetext无法正常工作
- 正在从xmlhttp.responseText获取数据
- 如何在 If 条件下使用 xmlhttp.responseText
- 无法返回 xmlhttp.responseText
- Javascript中的xmlhttp.responseText验证不起作用
- xmlhttp.responseText to html code
- 使用xmlhttp.responseText中的JSON解析数组
- JSON.parse(xmlhttp.responseText) returns empty
- 从AJAX函数返回xmlhttp.responseText
- 比较javascript中的字符串(字符串来源来自xmlhttp.responseText)
- xmlHttp.responseText获取文本
- xmlhttp.responseText返回脚本标记的内容
- 在xmlhttp.responseText之后,数据表没有正确呈现
- xmlhttp.responseText没有输出到innerHTML
- AJAX xmlhttp.responseText
- Ajax:xmlhttp.responseText response与显示完整的内部 HTML 而不是必需的文本