我正在进行 Ajax 调用,将 URL 发送到 PHP 脚本。通常这些 URL 很复杂并且包含特殊字符。如果我在发送前不对URL 进行编码,PHP 脚本可以工作,但 URL 的值会被解释为我的值(这是预期的)。
如果我对不包含特殊字符的 URL 进行编码,例如“ http://google.com ”,XMLHttpRequest 会按预期将我的参数发送到我的 PHP 脚本,一切正常。
问题是当我对包含特殊字符的 URL 进行编码时,例如“ http://google.com?this=that&that=this ”——send() 永远不会到达我的 PHP 脚本。它只是无限期地挂起。没有错误或任何东西。我难住了。
这是我正在使用的:
function getContent(content, sumbittedUrl){
var postContent = encodeURIComponent(content);
var postUrl = encodeURIComponent(submittedUrl);
var postString = 'content=' + postContent + '&url_get=' + postUrl;
var httpRequest;
//create XMLHttpRequest
.
.
.
httpRequest.onreadystatechange = alertContents;
httpRequest.open('POST', 'php/my_php_script.php', true);
httpRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
httpRequest.send(postString);
}
我是一名 JavaScript 新手,所以我可能(甚至可能)忽略了一些有更多经验的人会很快发现的东西。任何帮助,将不胜感激。谢谢。