4

Jsonデータを取得する際に非常に混乱しました。何か問題があれば修正してください。以下は私のコードです:

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
}
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        var data = JSON.parse(xmlhttp.responseText);
    document.getElementById("getListings").innerHTML=data;
    }
}
xmlhttp.open("GET","https://getJsonData",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.setRequestHeader("Accept", "application/json; charset=utf-8");
xmlhttp.setRequestHeader("Accept-Datetime","Fri, 15 Feb 2013 00:00:00 GMT");
xmlhttp.setRequestHeader("Authorization","XXXXXXX");
xmlhttp.send();

"getListings" div に何も表示されませんでした。

4

2 に答える 2

5

jQuery があると仮定します。

$.ajax({
    type: "GET",
    url: "https://getJsonData",
    dataType: "json",
    success: processData,
    error: function(){ alert("failed"); }
});

function processData(data)
{
    //do something with data
}

また、innerHtml を json オブジェクト自体に設定するだけでは何を期待しているのかわかりません。おそらく、次を使用して json から何らかのプロパティ値を取得する必要があります。data.someProperty

于 2013-05-15T01:20:47.883 に答える
0

いくつかの問題があります。

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

以下を使用する必要があります。

xmlHttp.setRequestHeader('Content-Type', 'application/json')

しかし、httpRequest.setRequestHeader('Accept', 'application/json');これはJSONを受け入れることをサーバーに伝えているので、あなたはJSONを送信していると述べています。

ここで、JSON を解析するときに、これを見たいと思うかもしれません: JavaScript で JSON を解析しますか? すべてのブラウザーが JSON を解析できるわけではないためです。

ここで、解析するときに、必要に応じて、それを innerhtml に入れるだけでなく、フォーマットしてから、フォーマットされた html コードを innerhtml に入れることを検討する必要があります。

適切に解析しているかどうかを確認する簡単な方法は、json で 1 つのプロパティだけを表示するアラートを作成することです。

于 2013-05-15T01:29:59.220 に答える