我使用以下函数通过上面提到的JSONP Proxy获取JSON数据特定API。我想从这个API中获取MESSAGE。
function callMe() {
var part1 = 'https://jsonp.afeld.me/?callback=?&url=';
var part2 = 'http://m.icta.lk/services/railwayservicev2/station/getByID?id=168';
var url = part1 + part2;
$.getJSON(url, function(data) {
document.getElementById("stName").innerHTML = data.MESSAGE;
});
}
对于上面的网址,我收到一条消息,说找到了1个结果!没关系。代理工作正常。
但是当此URL被分配给part2变量
时part2 = http://m.icta.lk/services/railwayservicev2/ticket/getPrice?startStationID=184&endStationID=61&lang=en
我收到一条消息,指出缺少参数。
以上两个网址没有错。你可以检查一下。这适用于第一个,但不适用于第二个。请帮忙
答案 0 :(得分:1)
由于您的part2
包含查询参数,因此JSONP服务器并不知道您尝试将startStationID=
传递给它,或者传递给其他API。这里的解决方案是对part2
:
var url = part1 + encodeURIComponent(part2);
将&
中的所有&符号part2
}转换为%26
。