Ajax结果给出未定义的值

时间:2019-07-13 12:12:16

标签: javascript jquery ajax

我有一个以这种方式格式化的ajax结果:

{id: 2850, cap: "50129", citta: "Firenze", provincia: "Firenze", sigla: "FI", …}

这是我正在使用的js:

$(function() {
  $('#postal_code').keyup(function ()  {
    if($("#postal_code").val().length == 5) {
      $.ajax({
        type: "POST",
        url: '/addresses/getcitycrovince',
        async: false,
        dataType: 'json',
        data: {
          cap: $("#postal_code").val()
        },
        success:function(result){
          alert(result.sigla);
            $('#province').val(result.provincia);
            $('#city').val(result.citta);
          console.log(result)
        },
        error:function(){
        }
      });
    }
  });
});

我需要从结果中获取值,但我正在获取undefined。 我在做什么错了?

编辑

这是getcityprovince函数:

public function getcitycrovince(Request $request) {
    $data = $request->all();
    $ret = App\CAP::where('cap', $data['cap'])->get();

    return json_encode($ret);
}

1 个答案:

答案 0 :(得分:1)

由于您获得的是array而不是object,因此需要相应地更新代码

$(function() {
  $('#postal_code').keyup(function ()  {
    if($("#postal_code").val().length == 5) {
      $.ajax({
        type: "POST",
        url: '/addresses/getcitycrovince',
        dataType: 'json',
        data: {
          cap: $("#postal_code").val()
        },
        success:function(result){
            $('#province').val(result[0].provincia);
            $('#city').val(result[0].citta);
        },
        error:function(){
        }
      });
    }
  });
});