jQuery.ajax()関数が機能しません。サーバーからのJSONデータを表示したいのですが。リクエストは成功しました。Firebugでわかりました。「success」タグでfunction(data){を削除すると、アラートが発生しますが、関数が残っている場合は発生しません。ちなみに、ユーザー名とパスワードが間違っている場合でも、リクエストは常に成功します。 ?しかし、xhr.setRequestHeader()メソッドを削除すると、Firebugは、サーバーが必要とする基本認証のために、呼び出しが「無許可」で終わることを示します。
これを解決するための提案はありますか?前もって感謝します!
私の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(function(){})と"success:(function(){})の違いは何ですか?