【问题标题】:Restangular ignores setBaseUrlRestangular 忽略 setBaseUrl
【发布时间】:2023-03-14 10:27:01
【问题描述】:

应用程序在http://domain1 上运行,必须使用以下代码从http://domain2 请求数据:

'use strict';

// Declare app level module which depends on views, and components
var myApp = angular.module('myApp', [
  'ngRoute',
  'restangular'
]);

myApp.config(['$routeProvider', 'RestangularProvider', function($routeProvider, RestangularProvider) {
  $routeProvider.when('/view1', {
      templateUrl: '/view1.html',
      controller: 'View1Ctrl'
    });

  $routeProvider.otherwise({redirectTo: '/view1'});
  RestangularProvider.setBaseUrl("http://domain2/");
}]); 

var rest = null;
myApp.controller('View1Ctrl', ['$scope', 'Restangular', function($scope, Restangular) {
  rest = Restangular;
  var cursos = Restangular.one("resource",100).get()
}]);

尽管如此,请求转到http://domain1。到底是怎么回事?我还检查了 Restangular 配置,将 Restangular 放在全局范围内,作为 rest 变量,并且基本 url 似乎是属性集。

【问题讨论】:

    标签: angularjs restangular


    【解决方案1】:

    你可以创建一个factory 并使用不同的域来获取如下所示的数据

    (function () {
       'use strict';
    angular.module('app')
        .factory('Domain2Restangular', ['Restangular',   Domain2RestangularFunction]);
    
    function Domain2RestangularFunction(  Restangular) {
        return Restangular.withConfig(function(RestangularConfigurer) {
            var baseURL = 'http://domain2';
            RestangularConfigurer.setBaseUrl(baseURL);
            RestangularConfigurer.setDefaultHeaders({'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8' });
        });
    }
    
    }());
    

    你可以调用

     return Domain2Restangular.all('')
                .post(data)
                .then(function(response) {
                    return response;
                }, function(error) {
                    return error
         });
    

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多