0
PHPのAJAX呼び出しで小さなjavascriptを実行すると、JSON parsererrorが返されます。 PHPでAJAX:PHPのエラーが返されました:JSON解析が失敗しました。
私は、JSONは、このような配列で満たされていることがわかります。 JSONエンコード:{"Year":"2012","Make":"Ford","Model":"Taurus","Error":"no error"}
Thisサイトです:
訪問者がフィールドVINを離れるときAJAXが呼び出されます右の3つのフィールドを自動的に埋める必要があります。 AJAX呼び出しのあなたの誤差関数で
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',
\t dataType: "json",
data: {
\t \t \t 'value1_VIN': \t myvin,
\t \t \t 'value2_ID': \t dataoneID,
\t \t \t 'value3_KEY': \t dataoneKEY,
\t \t },
\t success: function(response) {
\t \t
\t \t \t var resultYear = response.Year;
\t \t \t var resultMake = response.Make;
\t \t \t var resultModel = response.Model;
\t \t \t var resultMessage = response.Message;
\t \t \t alert("success returned: Year " + resultYear + " Make " + resultMake + " Model " + resultModel + " Message " + resultMessage);
\t \t document.getElementById("fld_7290902_1").value = resultYear;
\t \t document.getElementById("fld_1595243_1").value = resultMake;
\t \t document.getElementById("fld_7532728_1").value = resultModel;
\t \t document.getElementById("fld_7532728_1").value = resultMessage;
\t \t \t return;
\t \t },
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;
}
\t \t alert("Error in jquery: " + msg);
$('#post').html(msg);
\t },
\t complete: function(value) {
\t \t \t alert("returned after complete: " + value);
\t \t }
\t });
}
<?php
header('Content-Type: application/json');
$vinResult = array(
'Year' => '2012',
'Make' => 'Ford',
'Model' => 'Taurus',
'Error' => 'No Error'
\t);
echo json_encode($vinResult);
?>
など
data.Year
によって、あなたの応答を解析var data = jQuery.parseJSON(response);
を使用して、アクセスフィールドへ。なぜなら、あなたのサイトを調べると、エラー '$'が定義されておらず、何のajaxリクエストも送られなかったからです。 – Harish
うーん..いいですがあなたの質問は何ですか? – Viney
@Novice:質問は:なぜ、PHPでビルドされた正しいjsonが、私の呼び出し元AJAXの成功部分に表示されないのでしょうか?代わりに、json parsererrorを使ってエラー部分を起動します。最後に、この問題を解決するために何ができるでしょうか。 – nicecap