从div中的json文件中写出解析的响应

时间:2015-06-11 09:29:26

标签: javascript ajax json http-headers xmlhttprequest

假设我有一个像这样的json文件:http://www.example.com/json?jsonp=parseRespond

我的HTML代码:

<script src="http://www.example.com/json?jsonp=parseRespond"></script>

http://www.example.com/json?jsonp=parseRespond回复是:

{"id":"5572a7d648b33a462d79145d","avatarHash":null,"bio":"","bioData":null,"confirmed":false,"fullName":"Ender Widgin","idPremOrgsAdmin":[],"initials":"EW","memberType":"normal"}

如何获得已解析的响应标头? 这是我到目前为止所尝试的:

 var _request = undefined;
 var headers = _request.getResponseHeaders();
 document.write(headers);

但是,它不起作用!

注意:我没有进行XMLHttpRequest,因为Access-Control-Allow-Origin不允许使用Origin。

注意:我没有使用callback = apiStatus,因为它重定向到未经授权的链接。

所以我可以获得响应的唯一方法是使用jsonp = parseRespond时,如何在div中编写该响应?

1 个答案:

答案 0 :(得分:1)

由于您正在使用 JSONP 来处理从服务器收到的数据,因此您需要编写自己的函数parseRespond,该函数将该数据作为参数,或许,将其打印到您想要的特定DIV。

鉴于URL:

http://www.example.com/s.json?jsonp=parseRespond

您需要编写一个名为parseRespond的函数,如下所示

function parseRespond(data){
    // data is the response you received from that URL
    // e.g. data = {
    //     name: "John", 
    //     surname: "Conor",
    //     titles: ["Resistance Leader","Survivor"]
    // }

    // encapsulate, format or do something with the data here
    var output = data.name + " " + data.surname + " as " + data.titles.join(",");

    // Then print the output to your DIV like this example:
    $("#mydiv").html(output);
}

注意:JSONP是一个带回调的JSON,您在jsonp=func中指定的术语会导致指向func的函数回调。您可能希望阅读的更多信息在此主题中组织良好并进行了讨论:

What is JSONP all about?