繁体   English   中英

AJAX将POST变量发送到PHP

[英]AJAX Send POST Variables to PHP

我习惯用jQuery发送AJAX请求。 现在,我发现自己必须使用“ vanilla” JS发送它们。 利用我有限的知识,除了将数据与请求一起传递外,我设法使一切正常。 应该传递的两个变量在我的数据库中始终以NULL填充。 我在这里可以找到的每个示例都显示了jQuery的方式,我这样做没有问题。

谁能告诉我我在做什么错? 我认为它与数据的格式有关,但我无法实时了解它。

这是请求的代码。 请求对象内置在createXMLHttp()函数中。

var xmlHttp = createXMLHttp();
var data = {Referrer: document.referrer, Path: window.location.pathname};
xmlHttp.open('post', '/PagePilotSiteHits.php', true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(data);
 var data = {Referrer: document.referrer, Path: window.location.pathname};

 function buildQueryString(data)
 {
     var dataKeys = Object.keys(data);
     var queryString = "";
     for (var i = 0; i < dataKeys.length; ++i)
     {
         queryString += "&" + dataKeys[i] + "=" + encodeURICompenent(data[dataKeys[i]]); 
     }
     return queryString.substr(1);
 }

 xmlHttp.send(buildQueryString(data));

这应该做。 数据需要作为querystring传递。 此函数将根据您提供的数据对象创建查询字符串,并对@AlexV和@Quentin提到的uri组件进行编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM