1

ちょうど今日、私はIEに大きな問題があることに気づきました。

システムとユーザーに関するさまざまな詳細を5秒ごとに受け取り、必要に応じてページの値を更新するループがあります。次のようなHTMLで必要な値をチェックするだけで、クエリを作成します。

var query = '?name=value&other=bar';
if($('input.something').attr('checked') == 'checked') {
   query += '&more=info';                      
}  

クエリを作成した後、$。getを使用して情報を取得します。

$.get('json_builder.php' + query, function(callback) {
   alert(callback);
});

私のコールバックは、 $。parseJSON(callback);を使用してオブジェクトに変換するJSON文字列です。オブジェクトを使用してデータにアクセスします。

IEを除くすべてのブラウザでJSONコールバックを使用してアラートを受け取りますが、IEでは「未定義」になります。

しかし、開発者ツールのセクションのように、リクエストは通過します。レスポンスは実際にそこにありますが、何らかの理由で変数「callback」は「undefined」のままです。

$.getの代わりに$.getJSONを使用してみました-同じ結果です。

4

2 に答える 2

3

この問題が発生していましたが、試行錯誤の末、phpヘッダーコードを...から変更しました。

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

に...

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

私のためにそれを解決しました。

于 2012-12-30T01:13:00.370 に答える
0

以下のように$.ajaxを使用してビルドしますが、これがすでに試したものかどうかはわかりません。

var dataToSend = {'name':'value', 'other':'bar'};
if($('input.something').attr('checked') == 'checked') {
   dataToSend.push({'more':'info'});
}
    $.ajax({
    url:'json_builder.php',
    data:dataToSend,
    success function(callback) {
       alert(callback);
        },
    dataType:'json'
    });
于 2012-08-29T10:04:15.817 に答える