我试图从外部服务器上的web api获取一些数据。我可以在网络下看到正确的数据 - > Chrome调试程序中的响应。
如果我用闪烁的JSON url替换我的url,我会获得成功。我可以在Response中看到数据的显示方式不同,但我不知道如何将我的数据更改为与flickr相同。
我做了一个小提琴演示我的问题:jsfiddle/8JDna/2/
<body>
<div id="content">
<div class="well">
</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</body>
$(function () {
var thisMonth = 0;
var flickrURL = 'http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?';
var myURL = 'http://driving.thylle.dk/api/distance?jsoncallback=?';
$.ajax({
url: myURL,
jsonp: "callback",
dataType: "jsonp",
data: {
format: "json"
},
success: function (data) {
$(".well").html("<h3> SUCCESS </h3>");
},
error: function (xhr, textStatus, errorThrown) {
$(".well" ).html("Error: " + textStatus + ": " + errorThrown);
},
});
});
我希望你能理解我的问题
最好的问候Rasmus
答案 0 :(得分:1)
第二个URL下的服务器实际上并不返回JSONP响应,而只是简单的JSON。如果您可以控制该服务器,则必须使用jsoncallback
参数来包装JSON,如下所示:
// jsoncallback=cb
cb( ["you JSON response in here"] );
所以在PHP中,例如,目前你可能有这样的东西:
echo json_encode( $result );
您应该将其更改为
echo $_REQUEST['jsoncallback'], "(", json_encode( $result ), ");";