封装ajax,发送post请求,FormData参数格式与jq的区别
我自己封装了下ajax,但是发送post请求时,与jq发送post请求不一样。
这个是用jq发的请求:
这个是自己封装的:
我想知道是因为什么原因导致的?怎么设置成和jq一样?
下面是代码:
function ajax(options){
var xmlhttp,data;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
var method = (options.method || 'GET').toUpperCase(),
url = options.url,
async = options.async || 'false';
var onReady = function(callback){
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState === 4 && xmlhttp.status === 200){
callback(JSON.parse(xmlhttp.responseText));
}
}
}
if(method === 'GET'){
url += '?';
for (var index in options.data) {
if (options.data.hasOwnProperty(index)) {
url += index + '=' + encodeURI(encodeURI(options.data[index])) + '&';
}
}
url = url.slice(0,-1);
xmlhttp.open(method,url,async);
onReady(options.callback);
xmlhttp.send();
}else{
data = new FormData();
for (var index in options.data) {
if (options.data.hasOwnProperty(index)) {
data.append(index,encodeURI(encodeURI(options.data[index])));
}
}
xmlhttp.open(method,url,async);
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=utf-8');
onReady(options.callback);
xmlhttp.send(data);
}
}
这是我自己封装请求头:
相关阅读:
vue +better-scroll 在手机上无法滚动
新浪微博返回的这种复杂的json数据应该怎么解析?
如何理解这段关于指针的代码
问一个nginx rewrite 问题,求解答,谢谢
vscode 提示一致显示正在加载,就是出不来。
css气泡,实现“倒三角(不知道算不算三角了)”可透明的。
关于ThinkPHP框架的学习??求大神支招
关于mac安装多个jdk?
laravel 的Eloquent ORM里$hidden的作用是什么?
各位大神,react可不可以实现点击一个按钮跳转到一个新的窗口?
Flask 在 windows 系统下该如何部署?
一个简单的装饰器例子报错
javascript事件执行多次
node的npm无法安装
qq空间播放视频的返回数据
如何实现linux与windows软链接底层兼容?
koa 使用不同的路由请求 (不同的url地址) 能够渲染不同的html页面,类似于多页应用,该怎么实现啊??
【C++】用Dev-C++写的C++程序老是报错,请问为什么?如何解决?
grunt打包的electron桌面应用,怎么实现自动更新?以及怎么选择安装路径?以及安装动画好丑……
关于MongoDB使用场景的疑问