使用AJAX发送JSON

Dan*_*Dan 4 javascript ajax json

在我用AJAX发送它之前,我有什么特别要对JSON对象做的吗?我的代码看起来像这样:

runAjax(JSON.stringify(data));
Run Code Online (Sandbox Code Playgroud)

}

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);
}
Run Code Online (Sandbox Code Playgroud)

现在服务器没有收到数据.我在服务器端获取null,但客户端JSONString已设置.有什么我做错了吗?

CMS*_*CMS 5

您通过POST发送数据,您不需要变量'?'开头的字符params,我还建议您 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);
}
Run Code Online (Sandbox Code Playgroud)