angularhttpJsonp怎么才能处理json数据的response
答案:2 悬赏:10 手机版
解决时间 2021-01-03 15:43
- 提问者网友:欺烟
- 2021-01-03 08:32
angularhttpJsonp怎么才能处理json数据的response
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-01-07 04:59
主要思路是使用把皮皮书屋的xls内容转化成了JSON,然后用$http.get直接拿到数据,然后用ui-grid 展示,并且提供搜索功能。
本地一切都很好,工作很顺利,可是上传到阿里云后发现IIS不认JSON, 会报未处理.JSON类型文件的错误,
要改正这个错误需要admin权限执行一些命令,
那算了吧,把JSON放在阿里云存储里面吧,然后用$http.get拿,
这时候又报错了,是无法跨域访问, 这个简单啊, 把$http.get换成$http.jsonp就可以了:
$http.jsonp("pped2k.json?callback=JSON_CALLBACK")
.success(function (data) {
..
})
.error(function (e) {
console.log(e);
});
callback=JSON_CALLBACK 是必须的, 完美,运行试试,为啥没有返回数据? DEBUG进去看看,发现没有进入success, 一直都是进error.
继续查,后来发现jsonp数据格式跟JSON不是以个东西,JSONP是带CALLBACK执行的,所以需要更改一下我的JSON:
更改前是正常的: [{name:'ACB'},{'name:'cbd''}]
更改后是: angular.callbacks._0([{name:'ACB'},{'name:'cbd''}])
angular.callbacks._0 是啥呢?看你的$http.JSONP request, 在header中会发现是这样子的:
Request URL:
pped2k.json?callback=angular.callbacks._0
原来的callback=JSON_CALLBACK 会被更改成angular.callbacks._0,angular.callbacks._0就是从这里来的了
本地一切都很好,工作很顺利,可是上传到阿里云后发现IIS不认JSON, 会报未处理.JSON类型文件的错误,
要改正这个错误需要admin权限执行一些命令,
那算了吧,把JSON放在阿里云存储里面吧,然后用$http.get拿,
这时候又报错了,是无法跨域访问, 这个简单啊, 把$http.get换成$http.jsonp就可以了:
$http.jsonp("pped2k.json?callback=JSON_CALLBACK")
.success(function (data) {
..
})
.error(function (e) {
console.log(e);
});
callback=JSON_CALLBACK 是必须的, 完美,运行试试,为啥没有返回数据? DEBUG进去看看,发现没有进入success, 一直都是进error.
继续查,后来发现jsonp数据格式跟JSON不是以个东西,JSONP是带CALLBACK执行的,所以需要更改一下我的JSON:
更改前是正常的: [{name:'ACB'},{'name:'cbd''}]
更改后是: angular.callbacks._0([{name:'ACB'},{'name:'cbd''}])
angular.callbacks._0 是啥呢?看你的$http.JSONP request, 在header中会发现是这样子的:
Request URL:
pped2k.json?callback=angular.callbacks._0
原来的callback=JSON_CALLBACK 会被更改成angular.callbacks._0,angular.callbacks._0就是从这里来的了
全部回答
- 1楼网友:拜訪者
- 2021-01-07 06:03
同问。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |