我在控制器中有以下$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...]
此行为应在服务器端处理。