只有 HTTP 支持 AngularJS 1.2 跨源请求

AngularJS 1.2 cross origin requests are only supported for HTTP

本文关键字:请求 HTTP 支持 AngularJS 只有      更新时间:2023-09-26

有没有办法配置 Angular 应用程序使其可用?我正在使用工厂。

顺便说一句,我正在使用本地主机作为网络服务器,但我正在向其他服务器(同一网络)发出请求。

angular.module('demoApp.factories', [])
    .factory('dataFactory', ['$http', function($http) {
    var urlBase = 'external-server:8080';
    var dataFactory = {};
    dataFactory.getTest = function () {
        return $http.get(urlBase + '/test');
    };
    return dataFactory;
}]);

终于找到了解决方案。会在这里发帖,也许可以帮助别人:

angular.module('demoApp.factories', [])
    .factory('dataFactory', ['$http', function($http) {
    var urlBase = 'external-server:8080';
    var dataFactory = {};
    dataFactory.getTest = function () {
        //Note the $http method changed and a new parameter is added (callback)
        //the value of the callback parameter can be anything
        return $http.jsonp(urlBase + '/test?callback=myCallback');
    };
    return dataFactory;
}]);

控制器文件基本上只是调用这个工厂:

angular.module('demoApp.controllers', []).controller('controller1', ['$scope', 'dataFactory', 
        function ($scope, dataFactory) {
    $scope.status;
    $scope.data;
    dataFactory.getTest().success(function (data) 
    {
        $scope.data = data;
    }).error(function (error) 
    {
        $scope.status = 'Unable to load customer data: ' + error.message;
    });
您可能

希望按照此处指定的方式配置$httpProvider:http://better-inter.net/enabling-cors-in-angular-js/

另一种方法是在前端服务器上创建一个简单的 http 代理,使外部请求看起来像是来自同一服务器的角度。