$http.jsonp 无法正常工作



我在控制器中有以下$http调用:

查看 plunker 中的完整代码

$http.jsonp("http://currencyconverter.kund.nu/api/availablecurrencies/?callback=JSON_CALLBACK")
  .success(function(data){
    console.log('data',data)
  })
  .error(function(err){
    console.log('err',err)//it console err undefined
  })

上面的代码控制台err undefined表示它执行错误回调。但是当我打开Chrome网络工具时,它在响应中显示响应数据。为什么会这样?

您的 jsonp url 应该始终有一个参数callback=JSON_CALLBACK您在此处缺少该参数

$http.jsonp("http://currencyconverter.kund.nu/api/availablecurrencies/?callbak=JSON_CALLBACK")

更新

似乎服务器端您还没有实现将返回的对象包装在回调值内的逻辑,因为在浏览器控制台中点击此 url 应该在变量内提供数组包装JSON_CALLBACK

JSON_CALLBACK({..data here})

但它返回一个数组

[...data...]

此行为应在服务器端处理。

最新更新