2012-04-04 11 views
1

マイjQuery.ajax()関数は動作しません... 私はFirebugのを介して見つけ、要求が成功..サーバからJSONデータを表示したいと思います。どのように、また、ユーザー名とパスワードが間違っている場合、要求は常に成功:私は警告火災 - タグ「成功」に機能(データ){を削除すると機能がとどまるとき、それは...ところで をしませんそれはできますか?しかし、xhr.setRequestHeader()メソッドを削除すると、Firebugは、サーバが必要とする基本認証のためにコールが「無許可」になることを示します。このjQuery AJAXリクエストで何が問題になっていますか?

これを解決するための提案はありますか?前もって感謝します!

私のjavascript "gadget.js"

$.ajax({ 
    url: "http://localhost:8387/nscalemc/rest/mon/resourcestatus.json", 
    type: "GET", 
    dataType: "json", 
    contentType: "application/json", 
    beforeSend: function(xhr) { 
     var base64 = btoa('admin' + ":" + 'admin'); 
     xhr.setRequestHeader("Authorization", "Basic" + base64); 
    }, 
    success: function(data) { 
     $(data.groupStatus).each(function() { 
      $("body").append("<p>ID: " + this.id + "</p>"); 
     }); 
     alert("success!"); 
    } 
}).done(function(data) { 
    alert("done!"); 
    $(data.groupStatus).each(function() { 
     $("body").append("<p>ID: " + this.id + "</p>"); 
    }); 
}).fail(function(jqXHR, textStatus) { 
    alert("fail - " + textStatus); 
});​ 

は、ここに私のJSON

{ 
    "groupStatus": [ 
     { 
      "id": "Application Layer Configuration-ApplicationLayer", 
      "time": 1332755316976, 
      "level": 0, 
      "warningIds": [], 
      "errorIds": [] 
     }, 
     { 
      "id": "Application Layer-ApplicationLayer:nscalealinst2", 
      "time": 1333431531046, 
      "level": 0, 
      "warningIds": [], 
      "errorIds": [] 
     } 
    ] 
} 

そして最後に私のHTMLクラス "gadget.html" です:

<html> 
<head> 
    <title>My Gadget</title> 
    <link href="css/gadget.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="js/jquery-1.7.2.js"></script> 
</head> 
<body> 
    <div id="content"></div> 
    <script type="text/javascript" src="js/gadget.js"></script> 
</body> 

なぜ私のIDはないのですか?表示されますか?いただきましたの.done(関数(){})「成功の違い::?(関数(){})

+0

同じドメイン上のJSONファイルのですか?そうでない場合は、クロスドメインAjaxを参照してください。 (JSONP) – RvdK

+0

あなたは 'SUCCESS'と' done'が同じことを行うことを知ることが起こるのか?あなたのコードでは重複していますか? – Joseph

+1

あなたのスクリプトがうまく動作しているので、JSON呼び出しを考えています(http://jsfiddle.net/vbeSm/を参照) - @PoweRoyが尋ねたクロスドメインですか? –

答えて

1

は私が知っていることをお答えします:ところで

あり)(完了)と成功(の違いについてdocに注記:

廃止のお知らせ:jqXHR.success()、jqXHR.error()、およびjqXHR.complete()コールバックは次のようになりますjQueryの1.8で非推奨。彼らの最終的な除去のためにコードを準備するには、jqXHR.done()、jqXHR.fail()を使用代わりにjqXHR.always()を使用してください。

JSONを使用している場合は、ajax()の代わりにgetJSON()を使用できます。 希望する!

+0

私はこれを試みたが、getJSON()はこの要求に必要な基本認証をサポートしていません – P4tR

関連する問題