比如,,我們在沒有使用jquery的時候,沒有$.post來讓我們使用,那我們像下面這樣直接發送:
var params1 = {
username: username,
passwrod: password
};
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = xhr.responseText;
data = JSON.prase(data);
console.log(data);
}
}
xhr.open("POST","/url",true);
xhr.setRequestHeader('Content-Type', 'multipart/x-www-form-urlencoded; charset=UTF-8');
xhr.send(params1);
這樣發送,后台是接受不到數據的,,因為數據藏在Request的body中,而不是表單中,
所以我們前端就要對數據進行序列化,像jquery一樣,$.params 一樣對json序列化,這樣后台就可以收到了
就像這樣:
var params1 = {
username: username,
passwrod: password
};
function $params(obj) {
var str = [];
for (var p in obj) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = xhr.responseText;
data = JSON.prase(data);
console.log(data);
}
}
xhr.open("POST","/url",true);
xhr.setRequestHeader('Content-Type', 'multipart/x-www-form-urlencoded; charset=UTF-8');
xhr.send($params(params1));
寫下來,送給無知的自己。。
來自:http://news.17173.com/