在测试一些 Ajax 和 PHP 代码时,我偶然发现了 AJAX 的create index
问题。当我在没有responseText
的情况下使用它时,函数注册(参见 js.js )内部的比较失败。我已经验证了php代码的响应是否不包含换行符(请参阅 registration.php )。
form.php的
trim()
js.js
<?php?>
<html>
<head>
<script type="text/javascript" src=".js"></script>
</head>
<body>
<div>
<form>
<div>
Name : <input type="text" id="name"><br />
LastName : <input type="text" id="lastname"><br />
<input type="button" value="send" onclick="registration()">
<div id="message"></div>
</div>
</form>
</div>
</body>
</html>
为registration.php
function getRequestHttp()
{
var requestHTTP;
if(window.XMLHttpRequest)
{
requestHttp=new XMLHttpRequest();
if(requestHttp.overrideMimeType)
requestHttp.overrideMimeType('text/xml');
}
return requestHttp;
}
function getDataForm() {
var name,lastname,all;
name = document.getElementById('name').value;
lastname = document.getElementById('lastname').value;
all = "name="+name+"&lastname="+lastname;
return all;
}
function registration()
{
req.open('POST','inscription.php',false);
req.setRequestHeader('Content-Type','application/x-www-form-
urlencoded');
req.send(getDataForm());
if(req.readyState==4)
{
if(req.status==200)
{
//alert(req.responseText);
document.getElementById('message').innerHTML = "";
if (req.responseText.trim()=="no")
document.getElementById('message').innerHTML = "already exists";
else if (req.responseText.trim()!="no")
{
document.getElementById('message').innerHTML = "registration succeeded";
}
else
document.getElementById('message').innerHTML = "problem ";
}
else
alert("Error :"+req.status+",wrong request");
}
return true;
}
答案 0 :(得分:0)
因为有时候空间被连接在一起并且你的状况不符合你想要的。所以我们使用trim来避免结果两边的空白区域。假设我们从ajax请求得到了成功消息,我们写了这样的条件:
if(response.message == "success"){
//do this
}else{
//do this
}
所以在这种情况下,响应消息有时会附加一些空格,这就是我们使用trim的原因。
var response_msg = response.message;
if(response_msg.trim() == "success"){
//do this
}else{
//do this
}
这是我面临的整个情景。如果我错了,请纠正我。