Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何发送HttpRequest,它返回Json数据并显示它_Javascript_Json - Fatal编程技术网

Javascript 如何发送HttpRequest,它返回Json数据并显示它

Javascript 如何发送HttpRequest,它返回Json数据并显示它,javascript,json,Javascript,Json,我对获取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"); }

我对获取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”分区上显示任何内容。

假设您有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中获取某种属性值。someProperty

我发现了几个问题:

xmlhttp.setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”)

你应使用:

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

但是,我会使用
httpRequest.setRequestHeader('Accept','application/json')
当这告诉服务器您想要接受JSON时,您的状态表示您正在发送JSON

现在,当您解析JSON时,您可能想看看这个:因为并非所有浏览器都能解析JSON

现在,当您解析时,您不仅要考虑将其放入innerhtml中,而且还要对其进行格式化,然后根据需要将格式化的html代码放入innerhtml中


查看是否正确解析它的一个简单方法是让警报只显示json中的一个属性。

为什么不使用jQuery?jQuery.ajax()非常适合于此。我如何使用jQuery.ajax()发送HTTPRequest?mclaassen做了一个很好的回答。您可以尝试jQuery提供的jQuery$.ajax()方法。您可以点击此链接:@user1667419您可能需要添加console.log(数据);在processData函数中,如果是您第一次尝试itThx以获取响应。对于我得到的,似乎我还需要在请求头中附加“Accept Datetime”和“Authorization”。如果使用$.ajax,我在哪里添加它?如果您需要授权,您可以使用beforeSend设置进行添加:-您需要确保您需要它(我只是猜测,但您可能不需要)