easyui return 未定义 ajax

easyui return undefined from ajax

我提交表单,当我在控制台中签入它时 returns JSON 数据。但是我不能在 JSON 数据中使用对象。

$('#ff').form({
                type: 'POST',
                cache: false,
                url: base_url + 'Api/lapor/submit',
                dataType: 'json',
                iframe: false,
                onSubmit: function(param) {
                    param.id_item = sessionStorage.id_item;
                    param.token = sessionStorage.token;
                },
                onProgress: function(percent) {
                    $.messager.progress();
                },
                success: function(msg){
                  console.log(msg.status); //it will return undefined
                  $.messager.progress('close');
                },
                onLoadError: function(){
                    $.messager.alert('Error', 'Gagal', 'error');
                }
            });

我尝试 console.log(msg) 它 return JSON 数据 console

当您使用 console.log(msg.status); 记录 return 消息时,如果将结果写入 {message: "Data 1 telah disimpan", status: true} 那么您可以使用 msg.status 或 [=15] 调用它=]

但在您的情况下,它被记录为 {"message": "Data 1 telah disimpan", "status": true},因此您应该尝试使用包含的 " 来调用它,例如 msg['"status"']msg["\"status\""]

var msg1 = {"message": "Data 1 telah disimpan", "status": true}
var msg2 = {'"message"': "Data 2 telah disimpan", '"status"': true}

function checkdata1() {
  console.log(msg1);
  alert(msg1.message);
}

function checkdata2() {
  console.log(msg2);
  alert(msg2['"message"'])
}
<btn onclick="checkdata1()">Check Data 1</btn>
<br/>
<btn onclick="checkdata2()">Check Data 2</btn>

Update 这是使用 console.log

登录时 msg1msg2 之间的区别

更新2因为jeasyui$.form的return类型是一个string,所以需要解析首先使用 JSON.parsejeasyui 文档部分中找到的 JSON / javascript 对象 处理提交响应here