douchun1859 2016-11-11 03:26
浏览 54

AJAX:从PHP返回错误:请求的JSON解析失败

When I run my little javascript with an AJAX call to PHP it always returns with a JSON parsererror.

In PHP I can see that my json is filled with an array like this: json encode: {"Year":"2012","Make":"Ford","Model":"Taurus","Error":"no error"}

This is the site:

The AJAX will be called when the visitor leaves the field VIN on the left and should fill the 3 fields on the right automatically.

function decode_my_vin(myvin) {

alert("javascript began");

dataoneID  = '00000';
dataoneKEY = 'x0x0x';

jQuery.ajax(
    {
    cache: false,
    type: 'POST',
    url: '/wp-content/themes/Impreza-child/vin-decoder.php',
    dataType: "json",
    data: { 
            'value1_VIN':   myvin,
            'value2_ID':    dataoneID,
            'value3_KEY':   dataoneKEY,
        },
    success: function(response) {
        
            var resultYear = response.Year;
            var resultMake = response.Make;
            var resultModel = response.Model;
            var resultMessage = response.Message;
            alert("success returned: Year " + resultYear + " Make " + resultMake + " Model " + resultModel + " Message " + resultMessage); 

            document.getElementById("fld_7290902_1").value = resultYear;
            document.getElementById("fld_1595243_1").value = resultMake;
            document.getElementById("fld_7532728_1").value = resultModel;
            document.getElementById("fld_7532728_1").value = resultMessage;

            return;
        },
    error: function (jqXHR, exception) {
        var msg = '';
        if (jqXHR.status === 0) {
            msg = 'Not connect.
 Verify Network.';
        } else if (jqXHR.status == 404) {
            msg = 'Requested page not found. [404]';
        } else if (jqXHR.status == 500) {
            msg = 'Internal Server Error [500].';
        } else if (exception === 'parsererror') {
            msg = 'Requested JSON parse failed.';
        } else if (exception === 'timeout') {
            msg = 'Time out error.';
        } else if (exception === 'abort') {
            msg = 'Ajax request aborted.';
        } else {
            msg = 'Uncaught Error.
' + jqXHR.responseText;
        }
        alert("Error in jquery: " + msg); 
        $('#post').html(msg);
    },
    complete: function(value) {
            alert("returned after complete: " + value);
        }
    });
}
<?php

    header('Content-Type: application/json');

    $vinResult = array(
      'Year'  => '2012',
      'Make'  => 'Ford',
      'Model' => 'Taurus',
      'Error' => 'No Error'
    );

    echo json_encode($vinResult);
?>

</div>
  • 写回答

1条回答 默认 最新

  • doudao5287 2016-11-11 04:01
    关注

    In your error function of ajax call, it gives error for $('#post').html(msg); saying not function. Try using jQuery('#post') instead of $('#post').

    To parse your response, use var data = jQuery.parseJSON( response ); and then access fields by data.Year etc.

    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)