0

我正在使用以下代码调用另一个脚本:

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";

如果我将 innerHTML 命令替换为document.getElementById("savecouponarea1327").innerHTML = "Saved";一切正常工作。为什么没有在 getElementById 中读取响应?

4

1 回答 1

1

从基本调试

console.log(escape(response));

表明它有额外的字符:%0D%0Asavecouponarea1327

%0D是回车符。%0A是换行符。

您的服务器端代码中有额外的行。

于 2013-10-09T00:18:22.040 回答