0

ajax 経由でデータを取得しようとしていますが、何らかの理由で Chrome と IE のコンソールでのみエラーが発生します。Firefox では問題なく動作します。

これが私のコードです:

PHP

function get_data() {
     $data = array( 'value' => '50', 'type' => 'box' );
     echo json_encode($data);
     exit;
}

JS

$(".click").click(function() {
     var data = {
      action: "get_data"
     };

     $.post( "http://domain.com/", data, function(response) {
          var newResponse = $.parseJSON(response);
          console.log(newResponse);
     }); 
});

したがって、このコードは Firefox では正常に動作しますが、何らかの理由で Chrome と IE では動作しません... Chrome では、エラーが発生する前に console.log 関数に到達することさえできません。

ご覧いただきありがとうございます。

4

3 に答える 3

1

.parseJSONがなくても動作するはずです。ちょうどこのように、少なくともそれは私のために働きます:

$.ajax({
    url: "url...",
    type: "post",
    data: data,
    success: function (data) {
        if (data.Result) {
            data.value1;
            data.value2;
        } else {
            // do something else
        }
    }
});

データは{value1: '123'、value2: '345'、Result:true}のような私のタイプです

于 2012-10-02T00:46:05.840 に答える
0

何時間も何が悪いのかを理解しようとした後、私はついにajaxURLにある種のリダイレクトに問題があることに気づきました。そのリダイレクトがどのようにしてそこに到達したかはわかりませんが、削除するとすべてが機能し始めました。ちなみに、Firefoxに影響を与えなかったのは、私がサイトにログインしたからです。リダイレクトには、人がログインしているかどうかの何らかのチェックがあったと思います。ajaxURLをリダイレクトしないでください。

しかし、いずれにせよ、他の誰かが私と同じ問題を抱えていて、コードが正しくても機能しない場合に備えて、それを共有したいと思います。

そして、私を助けてくれたフェリックスに心から感謝します。

于 2012-10-02T14:02:54.563 に答える
0

どのバージョンの jQuery を使用していますか? 古いバージョンでは、返される JSON ファイル内の空白についてあまり寛容ではありません

于 2012-10-01T23:22:08.507 に答える