我使用以下代码调用另一个脚本:
function savecoupon<?php echo $r['id']; ?>() {
var listingid = document.savecouponform<?php echo $r['id']; ?>.listingid.value;
http.open('get', 'script/save_coupon.php?listingid='+listingid+'');
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4){
response = http.responseText;
alert(response);
document.getElementById(response).innerHTML = "Saved";
}
}
alert(response)
显示正确的结果,这是我要替换的div的元素id。但由于某种原因,当我将响应放入getElementById时,我在firebug中得到以下错误:
TypeError: document.getElementById(...) is null
document.getElementById(response).innerHTML = "Saved";
如果我用document.getElementById("savecouponarea1327").innerHTML = "Saved";
替换innerHTML命令,一切都按预期工作。为什么没有在getElementById中读取响应?
答案 0 :(得分:1)
从基本调试
console.log(escape(response));
表明它有额外的字符:%0D%0Asavecouponarea1327
%0D
是回车符。 %0A
是换行符。
您的服务器端代码中有额外的行。