Когда вы AJAX / публикуете обычный «текст» с «небезопасными» символами, вам необходимо кодировать URI для отправки некоторых «текстовых» комментариев в текстовой области
var URL = "somepage.asp";
var Params = "text=Hello World!";
var ajax = getHTTPObject();
ajax.open("POST", URL, true);
ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
ajax.setRequestHeader("Content-length", Params.length);
ajax.setRequestHeader("Connection", "close");
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
divResponse.innerHTML = ajax.responseText; //alert(ajax.responseText);
}
}
ajax.send(Params);
Результат будет примерно таким:
HelloWorld!
Итак, для кодирования URL необходимо отправить его в кодировке с помощью метода JavaScript
var URL = "somepage.asp";
var Params = encodeURI("text=Hello World!");
var ajax = getHTTPObject();
ajax.open("POST", URL, true);
ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
ajax.setRequestHeader("Content-length", Params.length);
ajax.setRequestHeader("Connection", "close");
ajax.onreadystatechange = function() {
if (ajax.readyState == 4 && ajax.status == 200) {
divResponse.innerHTML = ajax.responseText; //alert(ajax.responseText);
}
}
ajax.send(Params);
Тогда результат будет примерно таким:
Hello World!
Таким образом, проблема заключается в том, как «декодировать» кодированный URI, чтобы использовать его на серверной странице ASP Classic
EDIT:
<%
FUNCTION URLDecode(str)
Dim objScript
Set objScript = Server.CreateObject("ScriptControl")
objScript.Language = "JavaScript"
URLDecode = objScript.Eval("decodeURIComponent(""" & str & """.replace(/\+/g,"" ""))")
Set objScript = NOTHING
END FUNCTION
%>