【问题标题】:CORS request is not allowed with AngularJSAngularJS 不允许 CORS 请求
【发布时间】:2014-10-14 01:48:42
【问题描述】:

我正在尝试使用以下代码从 Angular JS 控制器访问 API:

$scope.getOperators = function() {
    $scope.CSVData.forEach(function(entry) {
        $http.defaults.useXDomain = true;
        $http({
            url : 'http://api.pts.se/PTSNumberService/Pts_Number_Service.svc/json/SearchByNumberList?numbers=' + number,
            method : 'get'
        }).success(function(data, status, headers, config) {
            console.log(data);
        });
    });
};

但我不断收到错误消息:

XMLHttpRequest cannot load http://api.pts.se/PTSNumberService/Pts_Number_Service.svc/json/SearchByNumberList?numbers=76-3095686. Origin http://localhost:8888 is not allowed by Access-Control-Allow-Origin.

据我了解,我知道应该从服务器启用 CORS 请求,但此时请求是从客户端发送的。

我错过了什么吗?

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

服务器提供 CORS 支持。您需要在那里启用它。

Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: *

理想情况下,您应该将 Access-Control-Allow-Origin 替换为您想要允许的域,否则任何人都可以远程/从他们的服务器访问 api。

【讨论】:

  • 问题是服务器不是我的。服务器是api.pts.se,可能他们没有启用CORS。
  • 那么在这种情况下你不能执行请求。您必须通过 PHP 进行代理。
猜你喜欢
  • 2023-03-10
  • 2018-07-28
  • 2015-03-09
  • 2016-09-15
  • 2019-07-02
  • 2016-11-18
  • 2014-12-20
  • 1970-01-01
  • 2016-09-02
相关资源
最近更新 更多