假设我有一个像这样的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中编写该响应?
答案 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
的函数回调。您可能希望阅读的更多信息在此主题中组织良好并进行了讨论: