Angular 角度:HTTP GET请求-选项405(不允许使用方法)

Angular 角度:HTTP GET请求-选项405(不允许使用方法),angular,typescript,api,http,cors,Angular,Typescript,Api,Http,Cors,我试图向我的API发出HTTP GET请求,它返回OPTIONS 405(不允许使用方法)和 从源代码访问“apirl”处的XMLHttpRequest “”已被CORS策略阻止:响应 飞行前请求未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源 下面是我的代码: const header = new HttpHeaders(); const request_header = header.append('Authorizatio

我试图向我的API发出HTTP GET请求,它返回
OPTIONS 405(不允许使用方法)

从源代码访问“apirl”处的XMLHttpRequest “”已被CORS策略阻止:响应 飞行前请求未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源

下面是我的代码:

 const header = new HttpHeaders();
 const request_header = header.append('Authorization', this.token.toString());

 console.log(request_header.get('Authorization'));

 this.urlList = buildUrl('myurl/', {path: 'mypath'});

 return this.http.get(this.urlList,{headers: request_header} );
我在Postman、C#Console应用程序和ASP.NET WebForms中也尝试过同样的方法,但在Angular中,我遇到了上面提到的错误。我还有一个HTTP GET登录请求,也是在TypeScript中,工作得很好

**注意:我没有访问后端的权限,但是基于C#和Postman,它工作得很好

更新:
谢谢你们,只是想让你们知道,我最终使用了angular的Flask来提出请求,这太棒了。

这是CORS的问题。托管RESTAPI的Web服务器运行在与托管静态文件的Web服务器不同的域上

确保您没有在单独的域或类似的域上运行localhost和restapi上的Angular。理想情况下,您应该从同一个域运行这两个


配置RESTAPI托管服务器以允许来自Angular托管服务器(localhost)的COR。

Postman在这里获取资源不会有任何问题

但是,当您从Angular server发出的请求出现跨源错误时,您需要使用API在Access Control Allow Origin标头中设置您的Angular server地址来获取后端集,以便访问请求的资源


如果您将Access Control Allow Origin标头设置为*,它将允许任何服务器获取资源,但这并不安全,因为任何人都可以在未经您许可的情况下获取您的资源。

这与angular无关,这是呼叫时的身份验证问题。您应该根据服务的需要,尝试确保传递具有适当请求头的身份验证令牌或cookie值。我已经尝试了上千种不同的方法和组合,但它们似乎都不起作用。在Angular中是否有不同的请求方式?我在一年前就遇到过类似的问题。我通常这样做:
httpOptions:any={headers:newhttpheaders({Authorization:'my_key_for_authentication'})在服务中,我获取头并在发出请求时传递给HttpClient:
const headers=this.httpOptions.headers;返回this.httpClient.get(
${this.baseUrl}/muurl
,{headers,params})
我的API可能在172.25.x.x上,我也在172.25.x.x上。我的登录请求是这样工作的,但这一个不行(但它同样适用于google chrome上的web表单)。@K.Anye然后使用172.25.x.x:4200而不是localhost:4200@K.Anye在一个域上运行的javascript不能在另一个域上进行HTTP调用。在您的问题中,我看到您正在使用访问UI。请确保使用localhost访问API和UI,或者使用相同的IP访问两者。如果不能这样做,请将服务器配置为允许来自IP或本地主机的COR访问UI。请阅读有关CORSThank的文章,非常感谢!行!