AngularJS,谷歌浏览器阻止我的应用程序发出发布请求,需要帮助添加标题[重复]

Posted

技术标签:

【中文标题】AngularJS,谷歌浏览器阻止我的应用程序发出发布请求,需要帮助添加标题[重复]【英文标题】:AngularJS, Google Chrome preventing my app to make post requests, need help adding headers [duplicate] 【发布时间】:2021-01-20 17:06:52 【问题描述】:

我对 AngularJS、API 和一般编码还是很陌生。我创建了这个 AngularJS 应用程序,让用户可以向我创建的 API 发出 post 请求。这是一个简单的括号检查器,一切正常,除了我必须在我的 chrome 浏览器中激活 CORS 插件才能使其工作,我不能要求用户这样做。

我很确定有办法解决这个问题,但我真的不明白。我想我需要在我的 http 请求代码中添加一些标头,对吧?

这是我发出请求的 angularjs 服务:

function ApiService($http) 
    // API = '//localhost:3000/parentheses';
    API = 'https://parentheses-api.herokuapp.com/parentheses';
    this.getUser = (entry) => 
        // console.log(this.entry);
        return $http
            .post(API,  string: entry )
            .then(function (response) 
                // console.log(response.data);
                return response.data;
            , function (reason) 
                // error
            )
        // this.entry = "";
    ;
;

angular
    .module('app')
    .service('ApiService', ApiService);

我认为这是我应该添加标题的地方。但是究竟如何以及什么标题?我现在真的不明白。

这里是完整的项目,有2个文件夹,一个包含API,另一个包含上面代码所在的APP(ApiService.js)

任何帮助将不胜感激!

【问题讨论】:

如果可以通过在客户端添加标头来规避CORS,那么首先使用CORS将是徒劳的。这些标头需要添加到服务器的回复中,而不是请求中。 【参考方案1】:

如果您请求的 API 是从作为前端的不同域提供的,那么您的 API 后端将需要使用正确的 CORS 标头进行响应。看一看:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

Access-Control-Allow-Origin: *

这告诉浏览器允许从任何来源请求代码来访问您的 API。

或者,使用 Access-Control-Allow-Origin: <origin> 告诉浏览器只允许指定的源访问您的 API。

【讨论】:

好的,让我在我的 API 上试试这个(不是我的前端,明白了!)如果我不成功,我会发布一个新问题,这次分享我的 API: ) 非常感谢您的帮助!

以上是关于AngularJS,谷歌浏览器阻止我的应用程序发出发布请求,需要帮助添加标题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 AngularJS 拦截器阻止 HTTP 基本身份验证对话框

AngularJS谷歌地图点击事件不在ios设备ipad和iphone中触发

无法阻止谷歌浏览器自动填充字段

谷歌浏览器显示XHR呼叫的状态为(阻止:其他)

我想用javascript编写这样一个条件,如果用户通过谷歌浏览器进入我的网站,发出警报或执行任何操作[重复]

AngularJS和跨域请求被阻止[关闭]