我有这个函数从服务器上的php文件获取文本并将其压缩到HTML页面。
我需要做什么更改才能将数据(只有几个javascript变量)发送到php文件而不是从中读取?希望不是很多!!
function process() {
if (xmlHttp) // the object is not void
{
try {
xmlHttp.open("GET", "testAJAX.php", true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
} catch (e) {
alert(e.toString());
}
}
}
答案 0 :(得分:0)
看看你可以使用的所有headers。在您的情况下,您可能希望使用POST而不是GET
xmlHttp.open("POST", "testAJAX.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");//or JSON if needed
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(data);
答案 1 :(得分:0)
您可能更喜欢使用POST来发送数据较少的限制。 e.g:
var data = {
user: 'Joe',
age: 12
};
var httpReq = new XMLHttpRequest();
// true means async - you want this.
httpReq.open('POST', 'testAJAX.php', true);
// json is just a nice way of passing data between server and client
xmlhttpReq.setRequestHeader('Content-type', 'application/json');
// When the http state changes check if it was successful (http 200 OK and
// readyState is 4 which means complete and console out the php script response.
httpReq.onreadystatechange = function () {
if (httpReq.readyState != 4 || httpReq.status != 200) return;
console.log(httpReq.responseText);
};
httpReq.send(JSON.stringify(data));
阅读它:
$name = json_decode($_POST['name']);
$age = json_decode($_POST['age']);
答案 2 :(得分:0)
如果它只是几个变量,您可以将它们弹出到查询字符串中 - 尽管您需要确保它们的值不会破坏您的PHP脚本或打开安全漏洞(例如,不要解释用户输入为SQL字符串)。对于更复杂的数据结构,请使用其他人建议的POST。
function process(var1value, var2value) {
if(xmlHttp) {
try {
xmlHttp.open("GET", "testAJAX.php?var1="+var1value+"&var2="+var2value, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
} catch(e) {
alert(e.toString());
}
}
}