不懂为什么是undefined,赋值不成功### 问题描述
问题出现的环境背景及自己尝试过哪些方法
火狐浏览器,
没尝试过解决
不理解为什么会这样
相关代码
粘贴代码文本(请勿用截图)
var options = {
url:'./server/register.php',
method:'post',
async:true,
params:{userpwd:'123321'},
error:function (){
},
success:function (data){
console.log(data);
}
}
$.ajax(options);
var $ = {
ajax:function (options) {
var url = options.url;
if (!url){
return fales;
}
var method = options.method || 'get',
async = options.method?true:false,
callback = options.success || null,
error = options.error || null,
params = options.params,
xhr = createXHR(),
paramsStr = (function (){
var temp = params;
var result = '';
for (var i in paramsStr){
result += i+"="+temp[i]+"&";
}
result.replace(/&$/,'');
console.log(result);
return result
})();
console.log(options.params);
debugger
xhr.onreadystatechange = function (){
if (xhr.readyState == 4){
if (xhr.status >=200 && xhr.status <300 || xhr.status == 304){
callback && callback(JSON.parse(xhr.responseText));
}
}else{
error && error();
}
}
xhr.open(method,url,async);
if(method === 'get'){
url += "?"+paramsStr;
xhr.send(null);
}else{
debugger
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
xhr.send(paramsStr);
}
function createXHR() {
// 如果是IE7以上和其他浏览器,则存在XMLHttpRequest本对象,通过它创建
if (typeof XMLHttpRequest != undefined) {
return new XMLHttpRequest;
} else if (typeof ActiveXObject != undefined) {
// 将所有ActiveXObject的版本号列出
var verNumber = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP.2.0'];
// 遍历创建XMLHttpRequest对象
var len = verNumber.length;
for (var i; i < len; i++) {
try {
var xhr = new ActiveXObject(verNumber[i]);
break;
} catch (e) {
}
return xhr;
}
} else {
throw new Error('No XHR Object availabel.');
}
}
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
获得那个params的对象
这里不是赋值不成功。
在打断点时,鼠标悬停显示变量值,与当前断点所在作用域有关,temp是在子作用域中,当前作用域中没有,所以显示为undefined