AngularJS:$HTTP.GET被取消

AngularJS:$HTTP.GET被取消,angularjs,http-headers,Angularjs,Http Headers,我试图使用angularJS的$http服务,但它似乎不起作用。我在网上读到过这样一个问题,但给出的解决方案没有帮助。我的控制器中有以下各项: app.controller('Ctrl', function($scope, $http){ var url = http://someurl?name=foo; $scope.submitRules = function(){ $http({method: 'GET', url: url}).

我试图使用angularJS的$http服务,但它似乎不起作用。我在网上读到过这样一个问题,但给出的解决方案没有帮助。我的控制器中有以下各项:

app.controller('Ctrl', function($scope, $http){    
    var url = http://someurl?name=foo;
    $scope.submitRules = function(){
        $http({method: 'GET', url: url}).
              success(function(data, status) {
                $scope.status = status;
                $scope.data = data;
              }).
              error(function(data, status) {
                $scope.data = data || "Request failed";
                $scope.status = status;
              });
    };
});
我正在使用这个版本的angularJS

每当我尝试发送请求时,它都会显示请求状态为“已取消”。我发送请求的URL运行得很好,只是在angularJS中不起作用。
有人能帮忙吗?

我觉得所有这些CORS的东西都让人困惑。但是我能说什么呢?我学东西很慢。您描述的问题可能可以从控制器上解决,但我认为最好是在进入点进行设置。例如:

angular.module('myApp', ['ngResource', 'ui.bootstrap']).
    config(function($httpProvider) {

        // Enable CORS
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];

        ...
  });
根据您提供的代码,这也可能有效(未经测试):

无论哪种方式,所有的魔法都发生在这两条线上:

$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];

如果不是CORS,您可以使用chromium和CORS扩展进行检查,请尝试设置请求的超时:

app.controller('Ctrl', function($scope, $http){    
    var url = http://someurl?name=foo;
    $scope.submitRules = function(){
        $http({
            method: 'GET',
            url: url,
            timeout: 50000
        }).
        success(function(data, status) {
          $scope.status = status;
          $scope.data = data;
        }).
        error(function(data, status) {
          $scope.data = data || "Request failed";
          $scope.status = status;
        });
    };
});

设置$httpProvider从未对我起作用,这是服务器问题。

这太模糊了,无法理解。。。你能举个例子吗?我正在尝试向我的服务器发送一些数据,并希望将其存储在mysql数据库中。数据被添加到URL,并作为http get请求发送。但是当我检查chrome中的开发者控制台时。我发现请求没有通过并被取消。这可能有很多原因,不幸的是,你确定问题不在于你的服务吗?是的。。直接从浏览器使用Url时,效果良好。当我使用jsonp方法时,它工作得很好。它看起来像CORS。。有解决办法吗?
app.controller('Ctrl', function($scope, $http){    
    var url = http://someurl?name=foo;
    $scope.submitRules = function(){
        $http({
            method: 'GET',
            url: url,
            timeout: 50000
        }).
        success(function(data, status) {
          $scope.status = status;
          $scope.data = data;
        }).
        error(function(data, status) {
          $scope.data = data || "Request failed";
          $scope.status = status;
        });
    };
});