首页 / ANGULAR / angular Jsonp的坑
angular Jsonp的坑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了angular Jsonp的坑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1431字,纯文字阅读大概需要3分钟。
内容图文
![angular Jsonp的坑](/upload/InfoBanner/zyjiaocheng/1227/ece68a9b5fb540628aef77812c0d084c.jpg)
angular 为了解决跨域问题 一些第三方接口会提供jsonp来调用,需要使用callback=JSON_CALLBACK来处理
这个时候问题来了,有些借口是不支持callback里面带有点语法的,最典型的就是豆瓣了,而callback=JSON_CALLBACK 会被 angular转换成 callback = angular.callbacks._[id]这种形式,
这个时候就会报错了,因为返回的是json格式而不是jsonp格式。为了解决这类问题最简单的方法肯定是重定义方法名,我在这里就是采用这种方法的,但是我们应该怎么改名字呢?答案就是在http拦截器里面,详情看代码。
https://api.douban.com/v2/book/isbn/‘ + isbn + "/reviews?callback=JSON_CALLBACK"
.factory("httpInterceptor", ["App", "$rootScope", ‘$injector‘,‘$timeout‘, function (App, $rootScope, $injector,$timeout) {return { request: function (config) { if (config.method === ‘JSONP‘) { console.log(config); var callbackId = angular.callbacks.counter.toString(36); config.callbackName = ‘angular_callbacks_‘ + callbackId; config.url = config.url.replace(‘JSON_CALLBACK‘, config.callbackName); $timeout(function () { window[config.callbackName] = angular.callbacks[‘_‘ + callbackId]; }, 0, false); } if (!config.isLoading) { count++; $rootScope.$broadcast(‘loading:show‘) } return config || App.q.when(config); }, requestError: function (rejection) { return App.q.reject(rejection) }, response: function (response) { return response || App.q.when(response); }, responseError: function (rejection) {// do something on response errorreturn App.q.reject(rejection); } } }])
就是以上代码进行方法名更改了。
以上思路来源于 http://stackoverflow.com/questions/25400891/how-to-custom-set-angularjs-jsonp-callback-name
原文:http://www.cnblogs.com/HeJason/p/5604835.html
内容总结
以上是互联网集市为您收集整理的angular Jsonp的坑全部内容,希望文章能够帮你解决angular Jsonp的坑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。