Ajax 使用JSONP从外部服务器获取数据

Ajax 使用JSONP从外部服务器获取数据,ajax,json,get,jsonp,external,Ajax,Json,Get,Jsonp,External,我试图从外部服务器上的web api获取一些数据。我可以在Chrome调试器的网络->响应下看到正确的数据 如果我用闪烁的JSON url替换我的url,我会成功。我可以在回答中看到数据显示的不同,但我不知道如何将我的数据更改为与flickr相同的数据 我用小提琴来演示我的问题: $(函数(){ 本月var=0; var flickrul=http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?'; var my

我试图从外部服务器上的web api获取一些数据。我可以在Chrome调试器的网络->响应下看到正确的数据

如果我用闪烁的JSON url替换我的url,我会成功。我可以在回答中看到数据显示的不同,但我不知道如何将我的数据更改为与flickr相同的数据

我用小提琴来演示我的问题:


$(函数(){
本月var=0;
var flickrul=http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?';
var myURL='1〕http://driving.thylle.dk/api/distance?jsoncallback=?';
$.ajax({
url:myURL,
jsonp:“回调”,
数据类型:“jsonp”,
数据:{
格式:“json”
},
成功:功能(数据){
$(“.well”).html(“成功”);
},
错误:函数(xhr、textStatus、errorshown){
$(“.well”).html(“错误:“+textStatus+”:“+errorshown”);
},
});
});
我希望你能理解我的问题


向Rasmus致意第二个URL下的服务器实际上并没有返回JSONP响应,只是简单的JSON。如果您可以控制该服务器,则必须使用
jsoncallback
参数来包装JSON,如下所示:

// jsoncallback=cb
cb( ["you JSON response in here"] );
echo json_encode( $result );
例如,在PHP中,当前您可能会遇到如下情况:

// jsoncallback=cb
cb( ["you JSON response in here"] );
echo json_encode( $result );
你应该把这个改成

echo $_REQUEST['jsoncallback'], "(", json_encode( $result ), ");";

谢谢@Sirko,我想这与我的api代码有关。是的,我有访问权限,但我使用C#,所以目前我有这个
public IEnumerable GetDriving_distance(){return db.Driving_distance.AsEnumerable()}
@thyle我对C不太熟悉,但只需输出通过
jsoncallback
获得的参数,后跟
,您实际的内容和
。谢谢@Sirko,我现在可以获得数据了,谢谢你。你让我找别的地方。现在的问题是,我不能张贴到服务器。我收到了一条成功的消息,但数据还没有被推送?@thyle我建议为这个问题提出一个新问题。这可能与该病有关。