在使用AJAX发送JSON对象之前,我有什么特别之处吗?我的代码如下所示:
runAjax(JSON.stringify(data));
}
function runAjax(JSONstring)
{
ajax = getHTTPObject();
var params = "?data=" + JSONstring;
ajax.open("POST", "createtrip.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.setRequestHeader("Content-length", params.length);
ajax.setRequestHeader("Connection", "close");
ajax.onreadystatechange = serverSpeaks;
ajax.send(params);
}
现在服务器没有收到数据。我在服务器端获取null,但客户端JSONString已设置。有什么我做错了吗?
答案 0 :(得分:5)
您正在通过POST发送数据,'?'
变量的开头不需要params
字符,我还建议您使用encode JSONString以避免出现问题。
请注意,您缺少var
变量的ajax
语句,这是全局声明(window.ajax),我认为您不需要全局...
function runAjax(JSONstring) {
var params = "data=" + encodeURIComponent(JSONstring),
ajax = getHTTPObject();
ajax.open("POST", "createtrip.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.setRequestHeader("Content-length", params.length);
ajax.setRequestHeader("Connection", "close");
ajax.onreadystatechange = serverSpeaks;
ajax.send(params);
}
答案 1 :(得分:0)
答案 2 :(得分:0)
服务器可以处理帖子正文,例如name1 = value& name2 = value2。
如果您使用的是PHP,则可以通过以下方式接收json字符串:
$data = file_get_contents("php://input");