使用JavaScript显示来自JSONP web服务的数据
Use JavaScript to display data from JSONP web service
我试图从iis .gov web服务检索数据并在html页面上显示。
网站有JSON和JSONP web服务。我不知道为什么我下面的代码不工作,我有代码与其他JSON web服务API,如facebook的API工作。
下面是一个使用webservice方法"getScientificNameFromTSN"的JSON API调用示例
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<body>
<script>
$(document).ready(function() {
var url="http://www.itis.gov/ITISWebService/jsonservice/getScientificNameFromTSN?";
$.getJSON(url, { "tsn" : "202384" }, function(data) {
document.write(data.author);
});
});
</script>
</head>
<body>
</body>
</html>
您链接到的文档页面包含此文本:
JSON-P调用是通过将"jsonp=function_name"附加到web服务调用的参数列表中来实现的。
要使用jQuery,您需要将jsonp=?
添加到URL的查询字符串中。例如:
$(document).ready(function() {
var url="http://www.itis.gov/ITISWebService/jsonservice/getScientificNameFromTSN?jsonp=?";
$.getJSON(url, { "tsn" : "202384" }, function(data) {
document.write(data.author);
});
});
jQuery将用它自动生成的函数名替换?
。
为了支持真正的ajax请求,您的服务器应该回答Access-Control-Allow-Origin: *
标头,但它没有。
也可以使用$.ajax
;对我来说,它看起来更清晰,更方便。
$.ajax({
url : "http://www.itis.gov/ITISWebService/jsonservice/getScientificNameFromTSN",
data : { "tsn" : "202384" },
dataType: "jsonp",
jsonp : "jsonp",
success : function(data) { console.info(data); }
});
注意,你应该传递dataType说jquery你查询数据跨域填充,你也应该提供查询字符串参数与回调名称,作为你的服务器要求(jsonp : "jsonp"
)。
Result is
author: "Merriam, 1914"
class: "gov.usgs.itis.itis_service.data.SvcScientificName"
combinedName: "Ursus arctos nelsoni"
kingdom: "Animalia"
tsn: "202384"
unitInd1: null
unitInd2: null
unitInd3: null
unitInd4: null
unitName1: "Ursus"
unitName2: "arctos"
unitName3: "nelsoni"
unitName4: null
相关文章:
- 基于api密钥的NodeJS web服务
- 使用javascript在客户端上使用Web服务
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- 从Javascript连接到SOAP Web服务
- 如何将javascript对象作为参数传递到c#web服务中
- AngularJS:使用维基百科API的web服务
- 从javascript调用C#Web服务并使用它(json格式)
- 从简单的html页面调用实时Web服务.
- 在JavaScriptAjax调用中从web服务中的XMLDocument获取响应.
- 如何使用 javascript 从 Web 服务重新加载项目集合
- 创建web服务“;活动指示器”-与所有浏览器兼容的类似指示符
- 如何将WinJS ListView绑定到web服务
- Ajax不调用Web服务
- 将web服务回调的结果绑定到Javascript中的调用函数
- 如何创建可从多个应用程序使用的PHP登录web服务
- Ajax发布到双节点NLB上的web服务
- 无法使用javascript客户端访问远程web服务
- 使用带有AngularJS的DocRaptor web服务
- 如何使用phonegap在android中调用asp.net Web服务
- 如何使应用程序加载独立于web服务调用