【问题标题】:AngularJS disabling CORS?AngularJS禁用CORS?
【发布时间】:2013-11-02 11:31:59
【问题描述】:

也许我完全遗漏了一些东西,但我有一个本地运行的服务器,并且 not 将 Angular 配置为使用 CORS 处理 $http 请求。当我向 localhost:<port> 发出 HTTP 请求时,我看到 Chrome 首先创建了一个 OPTIONS 请求。

因为我需要支持 IE 8 - AngularJS 肯定不能与 CORS 一起工作 - 我需要删除 CORS。

我尝试使用$http.post 包装器直接设置POST 方法not,但无济于事。或许这与https://github.com/angular/angular.js/issues/1585有关

我也尝试过直接从控制器调用 jQuery ajax 帖子——即使 CORS 选项为 false(因为它似乎默认为 true)。它仍然会创建一个 CORS 请求。

这是什么配置?

【问题讨论】:

    标签: javascript jquery angularjs cors


    【解决方案1】:

    CORS 是您的请求网址的结果,不是您可以设置的任何配置。如果您的来源与请求 url 协议/域/端口不匹配,您将收到一个 CORS 请求——没有例外。

    例如,来源为http://www.example.com:8080

    这是一个 CORS 请求:http://example.com:8080/path.json(不同的子域)

    这是一个 CORS 请求:http://www.example.com/path.json(不同的端口)

    这是一个 CORS 请求:https://www.example.com:8080/path.json(不同的协议)

    不是 CORS 请求:http://www.example.com:8080/path.json(协议、域和端口都与源匹配)

    话虽如此,OPTIONS 请求正在发生,因为您有一个标准标头之外的标头(很可能,您的请求有一个 X-Requested-With 标头)。在 Angular.js 中,您可以使用以下命令删除它:

    angular.module('yourModuleHere')
        .config(function ($httpProvider) {
            delete $httpProvider.defaults.headers.common['X-Requested-With'];
        });
    

    请注意,对于 Angular.js 1.2 及更高版本,X-Requested-With 不在默认的公共标头列表中。您无需将其从列表中删除。

    【讨论】:

    • 是的 - 这与我的问题相匹配,我是个白痴。
    猜你喜欢
    • 2014-06-01
    • 2013-01-24
    • 2022-01-26
    • 1970-01-01
    • 2013-06-20
    • 2020-09-29
    • 1970-01-01
    • 2016-05-03
    • 2021-08-11
    相关资源
    最近更新 更多