AJAX XMLHttpRequest POST

时间:2010-11-25 10:54:47

标签: javascript ajax post xmlhttprequest

我正在尝试使用POST方法编写XMLHttpRequest。我过去曾使用GET方法设法使用XMLHttpRequest,但我正在努力使用POST。

这是我的代码:

var xmlhttp = null;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

var url = "http://www.mysite.com/script.php";
var params = "var=1";
xmlhttp.open("POST", url, true);
xmlhttp.send(params);

它基本上调用PHP脚本,然后将一些信息添加到数据库中。

2 个答案:

答案 0 :(得分:49)

您忘记明确设置为Content-type标头,这在执行POST请求时是必需的。

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

另外,请不要忘记使用encodeURIComponent对参数进行正确编码,例如:

var params = "var=" + encodeURIComponent("1");

(在这个特定的例子中,没有必要,但是当使用像+这样的特殊字符时,如果不对参数文本进行编码,那么事情将会出现严重错误。)

更新 - 您还应将%20的所有实例替换为+,例如

var params = params.replace(/%20/g, '+');

答案 1 :(得分:-6)

好的,我已经设法对它进行排序。

虽然奇怪的原因,可能是沙盒安全相关,但我没有使用完整的URL地址,我刚刚使用了文件的相对路径,现在它可以工作了。

谢谢大家的支持。