我试图从俄罗斯航运网站获取一些信息.作为JON/Jquery/Internets的n00b,我无法将数据转换为json格式.
按照公司的API,我转到URL:http://emspost.ru/api/rest/?callback = json&method = theems.calculate&from = city--abakan& to = city--anadyr&weight = 1
返回:
json({"rsp":{"stat":"ok","price":"750","term":{"min":5,"max":9}}})
Run Code Online (Sandbox Code Playgroud)
在Jquery的文档之后,我尝试过:
<script>$.getJSON("http://emspost.ru/api/rest/?callback=json&method=ems.calculate&from=city--abakan&to=city--anadyr&weight=1",
function(data){
alert(data);
});</script>
Run Code Online (Sandbox Code Playgroud)
返回null.知道我做错了什么吗?
callback=?改为使用,如下所示:
$.getJSON("http://emspost.ru/api/rest/?callback=?&method=ems.calculate&from=city--abakan&to=city--anadyr&weight=1",
function(data){
alert(data);
});
Run Code Online (Sandbox Code Playgroud)
然后你将在警报中得到你的对象:) JSONP的工作方式是在查询字符串中调用该函数并调用该函数(它不存在,除非你function json() {}在它返回时创建了一个.当你执行?callback=?jquery动态命名success你给出的函数时要$.getJSON()和替换它,就像这样: ?callback=FunctioNameGiven,所以它实际上将正常运行.
如果你考虑它是如何运行的,它基本上是:
<script type="text/javascript">
//returned javascript here, e.g. FunctioNameGiven({ object data });
</script>
Run Code Online (Sandbox Code Playgroud)
这样做是因为它是一个GET请求,并且不受同源策略规则的限制,这就是JSONP在正常JSON请求被阻止的情况下的工作方式:)
| 归档时间: |
|
| 查看次数: |
361 次 |
| 最近记录: |