我正在尝试从我的朋友正在处理的API中输出一个变量。 API完全打开,因此不需要身份验证。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://profusum.se/js/jsonp.js"></script>
</head>
<body>
<script>
$.jsonp({
url: "http://blackcab.didair.se/api/drivers",
//callbackParameter: '',
timeout: 45000,
success: function (driversData, statusTwo) {
$.each(driversData, function (i, data) {
var name = driversData.drivers[1].name;
document.write("<p> Namn: " + name);
});
},
});
</script>
</body>
</html>
但是在使用Chrome开发者工具时出现此错误:
Uncaught SyntaxError: Unexpected token : drivers:1
为什么我会收到此错误?
答案 0 :(得分:0)
使用jQuery确认返回的数据不是JSONP且无法转换为它:
$.getJSON( "http://blackcab.didair.se/api/drivers?callback=?",
//callbackParameter: '',
function (data) {
console.log("this is data:",data);
});
结果:
SyntaxError: invalid label
{"drivers":[{
网站返回JSON而不是JSONP。为了让另一个站点连接到blackcab.didair.se,blackcab.didair.se必须返回JSONP或设置一个cors响应头(在维基百科上查找cors和相同的源策略)。
目前blackcab.didair.se正在返回JSON,这与JSONP不一样