Ajax 我到底在通过参数发送什么?

Ajax 我到底在通过参数发送什么?,ajax,post,xmlhttprequest,Ajax,Post,Xmlhttprequest,当执行XMLHttpRequest并使用POST作为表单方法时,我到底在发送什么?我知道它应该像send(parameters),parameters=“variable1=Hello”,例如。但如果我想这样做怎么办: parameters = "variable1=" + encodeURIComponent(document.getElementById("variable1").value); variable1是HTML表单输入的id 我可以这样做,还是需要将encodeURIComp

当执行
XMLHttpRequest
并使用
POST
作为表单方法时,我到底在发送什么?我知道它应该像send(parameters),parameters=“variable1=Hello”,例如。但如果我想这样做怎么办:

parameters = "variable1=" + encodeURIComponent(document.getElementById("variable1").value);
variable1是HTML表单输入的id

我可以这样做,还是需要将encodeURIComponent值分配给javascript变量并发送该变量:

var variable2;
parameters = "variable2=" + encodeURIComponent(document.getElementById("variable1").value);
假设您发送对象及其值,但是,它是来自HTML表单的对象、javascript对象还是php对象?问题是我已经试过了,但仍然无法在数据库中获得编码输入,我得到的只是用户的原始输入

顺便说一句,我知道这是一个相当无聊的问题,但如果我想想出一个解决方案,我觉得有必要确切地了解我在做什么


g

我这样做了,但数据库得到的值是原始输入,而不是编码输入。我的点子快用完了,不知道还能尝试什么。这可能是数据库的设置,数据库是否在存储输入之前对输入进行解码?这对我来说似乎有些牵强,但我一直在从各个角度看待这一点,仍然无法找到新的答案


PS:很抱歉将我的评论发布在回答区,第一时间在这里。

当创建查询字符串时,它实际上与对象或类似的东西无关。您只想发送键/值对。如何构造它取决于您自己,但首先将值分配给变量通常更整洁、更易于管理。i、 e

var myVar1Value = encodeURIComponent(document.getElementById('variable1').value);
var myVar2Value = encodeURIComponent(document.getElementById('variable2').value);
var url = "http://www.mydomain.com?" + "var1=" + myVar1Value + "&var2=" + myVar2Value;
它被称为查询字符串,所以它只是一个字符串。您在服务器端对它所做的就是让“魔法”发生的原因


编辑:如果您对值有问题,那么您应该将它们打印到控制台,以验证您是否得到了预期的结果

我想我找到了答案。我认为我的php代码没有显示编码的输入的原因是,当javascript发送编码的输入时,php会在接收到这些输入时自动解码。就像PHP的内置函数一样?还是我错了?
var myVar1Value = encodeURIComponent(document.getElementById('variable1').value);
var myVar2Value = encodeURIComponent(document.getElementById('variable2').value);
var url = "http://www.mydomain.com?" + "var1=" + myVar1Value + "&var2=" + myVar2Value;