假设我有一个这样的json文件:http://www.example.com/json?jsonp=parseRespond
我的网页代码:
<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=parseResponse 时,如何在div 中编写该响应?
由于您使用 JSONP 来处理从服务器接收的数据,因此您需要编写自己的函数parseRespond
该函数将该数据作为参数,并可能将其打印到您想要的特定 DIV。
给定网址:
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
的函数回调。您可能想要阅读的更多信息在此线程中得到了很好的组织和讨论:
JSONP是怎么回事?