簡體   English   中英

AJAX:從PHP返回會引發錯誤:請求的JSON解析失敗

[英]AJAX: Return from PHP fires error: requested JSON parse failed

當我使用對PHP的AJAX調用運行我的小JavaScript時,它總是返回JSON parsererror。

在PHP中,我可以看到我的json充滿了這樣的數組:json編碼: {"Year":"2012","Make":"Ford","Model":"Taurus","Error":"no error"}

是網站:

當訪客離開左側的VIN字段時,將調用AJAX,並應自動填充右側的3個字段。

 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.\\n 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.\\n' + 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); ?> 

在ajax調用的錯誤函數中,它給出$('#post').html(msg); 說不起作用。 嘗試使用jQuery('#post')代替$('#post')

要解析您的響應,請使用var data = jQuery.parseJSON( response ); 然后按數據訪問字段。 data.Year等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM