возвращаемые данные в успешном обратном вызове ajax - это объект json или строка json - PullRequest
0 голосов
/ 06 мая 2019

У меня вопрос по аргументу данных об успехе ajax.Есть два запроса ajax и соответствующий метод контроллера, оба из двух методов контроллера возвращают json String в функцию успеха, в ajax я установил оба типа dataType как 'json', поэтому я предполагаю, что они полностью совпадают. Но один из них возвращаеткак Json String, что означает, что я должен сначала проанализировать его для объекта, а другой - непосредственно для объекта Json. Я запутался в этом. Большое спасибо!

Я записал их в консоли, см. код. Первые три показываютajax1 и соответствующая консоль и контроллер, последние три показывают ajax2 и то же самое.

ajax

oldpassword.on("blur",function(){
    $.ajax({
        type:"GET",
        url:path+"/sys/user/checkPass",
        data:{method:"pwdmodify",oldpassword:oldpassword.val()},
        dataType:"json",
        success:function(data){
            //this one is json object directly
            console.log(data);
            console.log(typeof(data));
            console.log(data.result+"*****");
            if(data.result == "true"){

в cotroller

resultHashMap.put("result", "true");
return JSONArray.toJSONString(resultHashMap);

в консоли

{result: "true"}result: "true"__proto__: Object
object
true*****

ajax2

$.ajax({
    type:"GET",
    url:path+"/sys/user/userdelete.html",
    data:{method:"deluser",uid:obj.attr("userid")},
    dataType:"json",
    success:function(data){
        //receive as Json String
        console.log(data);
        console.log(typeof(data));
        console.log(data.result+"*****");
        data = eval("(" + data + ")");
        if(data.delResult == "true"){

в ролике

boolean result=userService.deleteUserById(id);
if (result) {
resultHashMap.put("delResult", "true");
    return JSONArray.toJSONString(resultHashMap);
}

в консоли

{"delResult":"true"}
string
undefined*****
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...