首页 > ajax 对象字面量传输过去后台为什么接收不到

ajax 对象字面量传输过去后台为什么接收不到

如图,注释掉的对象字面量的方法后台表示用POST接收不到数据。

后台如何接收到这种传输方式的数据呢?


搂着是post提交,必须加上这一行。

 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 

http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_send.asp


你都没有给她添加名称,当然接受不到数据。
应该这样:
xhr.send('json='+json_string) 这样发送。

Php端:
$_post['json'] 就可以接受到json格式字符串了

若是想要使用json数据,那么就先要进行解码:
json_decode(json) 函数可以解码json并返回一个stdClass对象,然后获取数据:

例如:json_decode(json)->name


注释掉的数据后台要从request.body中读取,是个JSON格式的数据
需要再后台反序列化成JSON对象~~


请求头的content-type要对应啊!
json的post请使用application/json而不是x-form…


1、创建表单数据可以用 new FormData() :

{ eventType : "loginIn",
  data: {
    UserName: account,
    password: password
  }
}

改为:

var formData = new FormData();
formData.eventType = "loginIn";
formData.data = {
    UserName: account,
    password: password
  };

... 

xhr.send(formData);

2、onreadystatuschange事件建议在xhr.send(formData)之前就做好声明

【热门文章】
【热门文章】