1

すべて、私は次のコードを持っています:

onDone: function (e, data) {
var result = jQuery.parseJSON(data.result);
var uploadType = result.upload_type;
var filename = result.name;
var insert_id = result.insert_id;
}

これを実行すると、IE から次のエラーが表示されます。

メッセージ: 'upload_type' が null であるか、オブジェクトではありません

Chrome で console.log(data.result) を実行すると、次のデータが得られます。

 [{
    "name": "1_3266_671641333369_14800358_42187036_5237378_n.jpg",
    "size": 35535,
    "type": "image\/jpeg",
    "url": "\/web\/upload\/1_3266_671641333369_14800358_42187036_5237378_n.jpg",
    "thumbnail_url": "\/web\/upload\/thumbnails\/1_3266_671641333369_14800358_42187036_5237378_n.jpg",
    "delete_url": "\/web\/upload.php?file=1_3266_671641333369_14800358_42187036_5237378_n.jpg",
    "delete_type": "DELETE",
    "upload_type": "video_montage",
    "insert_id": "288"
}]

IE8 でエラー メッセージが表示される理由を確認しようとしていますが、何が解析されているのかわかりません。私がこのような警告をしたとき:

var result = jQuery.parseJSON(data.result);
alert(result)

私はヌルになっていましたが、その理由はわかりません。

それを読む方法、または返された文字列にデータがあるにもかかわらず、解析された JSON の結果が null である理由について、どんな助けも大歓迎です!

ありがとう!

4

4 に答える 4

2

私は最終的にこれに対する解決策を見つけました.IEはXHRアップロードをサポートしていないため、これは問題です. この投稿をチェックすると、これの詳細な説明を見つけることができます。

jquery ファイルのアップロード - IE 完了コールバック data.result の問題

ただし、そのコードは IE でしか機能せず、ブラウザー間で作業する必要があったため、それは私のニーズを完全には解決しませんでした。コードを少し更新しました。ここで受け入れられた回答をチェックしてください。

jqueryファイルのアップロード - IEコールバックはオブジェクトオブジェクトになります

XHR タイプのアップロードで、IE からの JSON 応答を処理する方法がわかります。

于 2012-07-12T16:37:55.127 に答える
1

data.resultはすでにオブジェクトです。

そして、 jQuery.parseJSON()のパラメーターが型ではない場合にnulljQuery が返されるため、取得しています。nullstring

于 2012-07-11T22:47:25.263 に答える
0

たぶんIEでこれを試してみてください:

alert(data.result);

これで、JSONの文字列値が得られるはずです。

于 2012-07-11T22:41:10.217 に答える
0

data.resultすでに解析されているため、$.parseJSON. 次の行を削除します。

var result = jQuery.parseJSON(data.result);

また、JSON オブジェクトは (オブジェクトの) 配列です。配列の最初のオブジェクトからプロパティを取得してみてください。

var uploadType = data.result[0].upload_type;
于 2012-07-11T22:46:58.383 に答える