转义GET参数

时间:2012-07-25 13:45:09

标签: php javascript html ajax

我的页面上有<form>,其中包含<textarea>,我想使用Ajax发送在其中输入的文本。该文本转到PHP页面,我将其插入到SQL数据库中。

我面临的问题是,每当我在+中写&<textarea>时,JavaScript都会将其视为网址中的特殊字符。我怎么能逃脱他们?

function getMessageResponse() {
    var xmlHttp;

    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch(e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }

    xmlHttp.onreadystatechange = function() {
        if(xmlHttp.readyState == 4) {
            document.getElementById('response').innerHTML = xmlHttp.responseText;
            document.myform.post.value = '';
            retrieve();
        }
    }

    var url = "wall4.php";
    url = url+"?post=" + document.myform.post.value; 

    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

1 个答案:

答案 0 :(得分:3)

Encode您的参数:

url = url + "?post=" + encodeURIComponent(document.myform.post.value);