415(不支持的介质类型),以角度表示

问题描述 投票:0回答:1

[当我尝试在以下代码中传递令牌时,在控制台中收到一条消息,消息为“ 415(不受支持的媒体类型)”,而在网络中,收到一条消息,消息为“不支持请求实体的媒体类型为“文本/纯文本”为此资源”。

fetchFarmerDetails(Venktoken:string) {
      console.log("Welcome");
      console.log(Venktoken);
      this.token = Venktoken;      
      console.log(this.token);
     let url = "http://169.38.82.132:94/GetFarmerInfo";
     var data1 = "'InstanceName': 'ORISSA', 'Content-Type': 'application/json'";
     //let headers = new HttpHeaders({ 'Authorization': 'bearer '+ this.token,data1 }); 
     let headers = new HttpHeaders().set("Authorization", 'Bearer ' + this.token);
     return this.http.post(url,data1, { headers: headers })      
    };
angularjs angular api angular-cli
1个回答
0
投票

关于在Angular中处理身份验证标头的最佳方法> 4最好使用Http拦截器,用于将它们添加到每个请求中,然后使用保护您的路线的警卫。

这是我在应用程序中使用的AuthInterceptor的完整示例:

auth.interceptor.ts

import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';

import { Observable } from 'rxjs/Observable';

import { AuthService } from './auth.service';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    req = req.clone({
      setHeaders: {
        'Content-Type' : 'application/json; charset=utf-8',
        'Accept'       : 'application/json',
        'Authorization': `Bearer ${AuthService.getToken()}`,
      },
    });
    return next.handle(req);
  }
}    

您需要在app.module中将拦截器注册为提供者:

app.module.ts


import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { AuthInterceptor } from '../auth/auth.interceptor';

...

imports: [
    HttpClientModule,
    ...
],
providers: [
    {
      provide : HTTP_INTERCEPTORS,
      useClass: AuthInterceptor,
      multi   : true,
    },
    ...
],

...

访问https://medium.com/@ryanchenkie_40935/angular-authentication-using-the-http-client-and-http-interceptors-2f9d1540eb8

关于围棋方面,这很可能是您正在发送的请求标头以及CORS允许的标头。您应该尝试的第一件事就是允许所有人:

headersOk := handlers.AllowedHeaders([]string{"*"})
originsOk := handlers.AllowedOrigins([]string{"*"})
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})

并且如果问题消失了,请尝试仔细构造您的CORS到客户发送的内容。

© www.soinside.com 2019 - 2024. All rights reserved.