如图,注释掉的对象字面量的方法后台表示用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)之前就做好声明