1
$(document).ready(function() {
        var path = null;
        console.log('${pageContext.request.contextPath}/loadfile');
        $.ajax({
              dataType: "json",
              url: '${pageContext.request.contextPath}/loadfile',
              success: function(data){
                $.each(data,function(index,obj){
                    console.log(obj.id);
                    alert('inside');
                    path = obj.path;
                });  
              }     
              });

ここで /loadfile は json オブジェクトを返す URL です。この URL に移動すると、HTML ページに印刷された JSON オブジェクトを見ることができますが、上記の JavaScript コードを含むページにアクセスしても同じ結果は得られません。

4

1 に答える 1

0

多くの場合、送信している JSON 文字列が json オブジェクトとして解釈されることをサーバーにブラウザに伝えません。

dataType:'json'それを整理することになっているという事実にもかかわらず、常にそうであるとは限りません。

PHPで

header("Content-type: application/json");

ASP

Response.AddHeader('Content-Type', 'application/json');

それに失敗すると、

success: function(data){
    if (typeof data!='object') data=$.parseJSON(data); // make sure it's an object

jQuery がそれを修正しない理由がわかりませんが、dataType:'json' が設定されていても、応答ヘッダーは次のように表示されapplication/x-www-form-urlencoded; charset=UTF-8、オブジェクトは作成されません。

于 2013-02-11T08:11:13.653 に答える