0

I am trying to get the success response to send the values from ajax into their respective fields. For whatever reason I can't get that to happen. In the success section I am issuing a "alert(responseObject)" in which the results are in the attached image. So the data is coming back just as I want it, but I can't get the values to populate into the matching fields.

$(document).ready(function() {
    function myrequest(e) {
        var man_part_number = $('#man_part_number').val();
        $.ajax({
            method: "GET",
            url: "includes/autofill.php",

            data: {
                man_part_number: man_part_number
            },
            success: function(responseObject) {
                alert(responseObject);
                //This alert response results is in attached image
                $('#manufacture').val(responseObject.manufacture);
                $('#model').val(responseObject.model);
                $('#type').val(responseObject.type);
            },
            failure: function() {
                alert('fail');
            }
        });
    }

    $('#fetchFields').click(function(e) {
        e.preventDefault();
        myrequest();
    });
});

<button type="button" id="fetchFields">Fetch</button>

<input type="text" name="manufacture" id="manufacture" />
<input type="text" name="model" id="model" />
<input type="text" name="type" id="type" />

Return AJAX Code

4

1 に答える 1

2

返される文字列はJSONではありません。アラートボックスで文字列の最後を確認します。「テスト」があります。これは、オプションを指定しないため、応答がjQueryによってテキストとして解析されることを意味しdataTypeます。「JSON」として指定した場合、「{...}」の横に「test」があると無効なJSONになるため、失敗します。重要なのは、有効なJSONを返す必要があるということです。実際に、JSONが返されることを期待している場合は、呼び出しのdataTypeオプションを「JSON」に設定してください。$.ajax同時に、サーバーはとにかく応答に適切なヘッダーを設定する必要があります。オプションを指定する方が(場合によっては)さらに優れていdataTypeます。

デフォルトでは、dataTypeオプションを指定しない場合、jQueryは応答のヘッダーをチェックしてContent-Typeを取得します。「JSON」、「HTML」、「Text」、「XML」、またはその他のいくつかの有効なタイプと一致する場合、それによって解析を試みます。あなたの応答にはヘッダーが適切に設定されていないに違いありません。そうでないと、jQueryがそれをJSONに変換しようとして失敗します。おそらくプレーンテキストとして返されるので、jQueryはそれを認識し、テキストとして解析します...これが正常に解析される理由です。ただし、適切な解析を確実にするためにこれらの手順に従わないため、responseObject参照しているのは期待どおりではありません。Object

于 2013-01-24T07:14:36.683 に答える