我还没有找到这个问题的明确答案 我认为这会有所帮助,因为它并不明显,至少对我而言。
我想知道如何格式化在AJAX中使用POST传递的参数
例如,我下面的代码使用数据变量作为参数
我知道输入字段值应该伴随着' +'签字。
但我不知道输入字段的值是第一还是第二,我不知道它是否应该在字段名称或id或其他内容旁边......
var xhttp = new XMLHttpRequest();
var url = 'test.php';
var input = document.getElementById('input').value;
var data = 'whatshouldgohere?='+input;
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
this.responseText;
}
xhttp.open('POST', url, true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send(data);
}
欢迎任何有关上述代码的其他提示。
答案 0 :(得分:0)
我以前用过这个:
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.send(JSON.stringify(data));
如果您没有强制使用application/x-www-form-urlencoded
,我认为在JavaScript中使用JSON更容易。
答案 1 :(得分:0)
您应该始终将参数命名为您的函数所期望的参数。所以test.php可能需要2个变量,id和boolean。所以你想发送它
var data = 'id=' + id + '&boolean=' + boolean;
并且test.php将根据您在查询参数中调用它们来知道哪个是哪个。所以要阐述这个,比如
var data = 'id=' + boolean + '&boolean=' + id;
可能会引发错误,因为您的端点将错误地应用这些参数。很容易想到一个端点就像一个函数(你有一个参数顺序和CAN命名它们你喜欢的任何东西)但查询参数(至少根据我的经验)没有排序,必须正确命名。
我希望能回答你的问题!