如何自定义设置angularjs jsonp回调名称?

普拉莫

我必须通过angularjs从某些网站获取json数据。我已经按照下面的链接正确地完成了所有操作。

我的问题是api不允许回调参数具有除字母,数字和_之外的任何字符。而且由于angular用'angular.callbacks._0'之类的东西替换了JSON_CALLBACK,所以不允许使用它。

如何自定义为angularjs设置此值?

在angular.js中解析JSONP $ http.jsonp()响应

谢谢

runTarm

回调名称在此处为硬编码httpBackend.js#L55,因此您无法对其进行配置。

但是,您可以编写一个HTTP拦截器来解决此问题,如下所示:

.factory('jsonpInterceptor', function($timeout, $window, $q) {
  return {
    'request': function(config) {
      if (config.method === 'JSONP') {
        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);
      }

      return config;
    },

    'response': function(response) {
      var config = response.config;
      if (config.method === 'JSONP') {
        delete $window[config.callbackName]; // cleanup
      }

      return response;
    },

    'responseError': function(rejection) {
      var config = rejection.config;
      if (config.method === 'JSONP') {
        delete $window[config.callbackName]; // cleanup
      }

      return $q.reject(rejection);
    }
  };
})

样例示例: http ://plnkr.co/edit/S5K46izpIxHat3gLqvu7?p=preview

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JQuery使用随机生成的JSONP回调名称做什么?

来自分类Dev

如何在Helmchart中设置自定义发布名称

来自分类Dev

设置自定义属性名称

来自分类Dev

设置原始资源的自定义名称

来自分类Dev

如何为表单助手生成的日期时间输入设置自定义名称?

来自分类Dev

如何使用Selenium和Python为用户代理设置自定义名称

来自分类Dev

如何在Vue中设置自定义CoreUI列名称?

来自分类Dev

如何以编程方式从设置中获取启用的自定义键盘名称

来自分类Dev

如何在mybatis generator中为mapper文件和接口设置自定义名称、后缀?

来自分类Dev

如何在ASP.NET Core MVC中自定义Html.DropDownListFor辅助设置名称属性

来自分类Dev

上传器:如何将自定义文件夹名称设置为与用户ID相同?

来自分类Dev

如何在AngularJS中的单个方法中基于字段名称显示自定义验证

来自分类Dev

如何从回调访问Polymer自定义元素

来自分类Dev

如何创建执行回调的树枝自定义标签?

来自分类Dev

如何从回调访问Polymer自定义元素

来自分类Dev

CakePHP 3:如何创建自定义模型回调?

来自分类Dev

如何从自定义名称空间访问PHP内部类

来自分类Dev

如何在JAXB中自定义属性名称?

来自分类Dev

如何自定义Yii 2 RBAC表名称

来自分类Dev

如何自定义GRUB菜单项(例如名称)?

来自分类Dev

如何使用自定义名称保存图像

来自分类Dev

如何使用自定义名称嵌入Google Map iFrame

来自分类Dev

如何在Javers中自定义属性名称

来自分类Dev

如何在Gerrit下创建自定义名称空间?

来自分类Dev

如何使用 Gradle 自定义 aar 包名称?

来自分类Dev

如何创建自定义 AWS 资源名称?

来自分类Dev

如何自定义GRUB菜单项(例如名称)?

来自分类Dev

聚合的自定义名称

来自分类Dev

jQuery-从html属性获取事件委托中的回调名称

Related 相关文章

  1. 1

    JQuery使用随机生成的JSONP回调名称做什么?

  2. 2

    如何在Helmchart中设置自定义发布名称

  3. 3

    设置自定义属性名称

  4. 4

    设置原始资源的自定义名称

  5. 5

    如何为表单助手生成的日期时间输入设置自定义名称?

  6. 6

    如何使用Selenium和Python为用户代理设置自定义名称

  7. 7

    如何在Vue中设置自定义CoreUI列名称?

  8. 8

    如何以编程方式从设置中获取启用的自定义键盘名称

  9. 9

    如何在mybatis generator中为mapper文件和接口设置自定义名称、后缀?

  10. 10

    如何在ASP.NET Core MVC中自定义Html.DropDownListFor辅助设置名称属性

  11. 11

    上传器:如何将自定义文件夹名称设置为与用户ID相同?

  12. 12

    如何在AngularJS中的单个方法中基于字段名称显示自定义验证

  13. 13

    如何从回调访问Polymer自定义元素

  14. 14

    如何创建执行回调的树枝自定义标签?

  15. 15

    如何从回调访问Polymer自定义元素

  16. 16

    CakePHP 3:如何创建自定义模型回调?

  17. 17

    如何从自定义名称空间访问PHP内部类

  18. 18

    如何在JAXB中自定义属性名称?

  19. 19

    如何自定义Yii 2 RBAC表名称

  20. 20

    如何自定义GRUB菜单项(例如名称)?

  21. 21

    如何使用自定义名称保存图像

  22. 22

    如何使用自定义名称嵌入Google Map iFrame

  23. 23

    如何在Javers中自定义属性名称

  24. 24

    如何在Gerrit下创建自定义名称空间?

  25. 25

    如何使用 Gradle 自定义 aar 包名称?

  26. 26

    如何创建自定义 AWS 资源名称?

  27. 27

    如何自定义GRUB菜单项(例如名称)?

  28. 28

    聚合的自定义名称

  29. 29

    jQuery-从html属性获取事件委托中的回调名称

热门标签

归档