http有返回值,但是ajax返回的data为undefined

问题遇到的现象和发生背景

ajax请求成功后,返回的data为undefined

问题相关代码,请勿粘贴截图
         $.ajaxFileUpload({
            url: 'http://localhost:13237/InputScoresDetailsDevelopedSunrise_Web.ashx?urlflag=4',  //这里是服务器处理的代码
            type: 'post',
            secureuri: false, //一般设置为false
            fileElementId: 'upload_file_id', // 上传文件的id、name属性名
            datatype: 'json', //返回值类型,一般设置为json、application/json
            async: false, 
            //data: {}, //传递参数到服务器
            success: function (data) {
                alert(typeof data);
                console.log(eval(data));
                console.log(eval("("+data+")"));
                if (data.flag=='1') {
                    console.log("成功!");                            
                    sx++;
                } else {
                alert("文件成功处理出错!原因:" + data.error);
                } 
            },
            error: function (e) {
                //console.log(e);
                //alert("错误:上传组件错误,请检察网络!");
            }
        });
运行结果及报错内容

img

img

我的解答思路和尝试过的方法

网上说的方法都试过了,data还是为undefined, typeof data还是defined

我想要达到的结果

获取data的值

console.log(data.data)
if (data.data.flag=='1') {
console.log("成功!");
sx++;
}

接口已经看了啊,截图已经放在上面了,返回的是{ "flag": "1" , "filename": "SQLQuery1.sql"}

打印 data就是undefined 对吧

img

img


把这个注释掉,看data能不能打印出来

看看是不是跨域了,跨域了的话,就是network有值,但是取不出来,浏览器的安全机制

async设置为true试试,可能是异步请求你设置为同步了,数据还没返回过来你就打印肯定为空了

接口文件可以发一下不,我本地试试问题

先通过F12的控制台,点击网络,然后查看接口的响应返回值是否正确

你要去看接口啊,成功了应该给你返回什么呢