有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误:SyntaxError:JSON中位于位置0的意外标记g

当我输入字母时,这个错误会告诉我,如果我输入数字,它不会告诉我。我想知道如何修理它

角码 auth。服务ts

 refactor(data: string): Observable<any>{
        return this.http.post<any>(apiUrl, data)
          .pipe(
            tap(_ => this.log('refactor')),
            catchError(this.handleError('refactor', []))
          );
      }

组成部分。ts

this.anomtextService.refactor($('#file').val().toString())
         .subscribe(res => {

           $('#textAnom').val(res);

         }, (err) => {
           console.log(err);
           alert(err.error);
         });

     }

API REST JAVA

@PostMapping(path = "/rename")
    public String getPathByDoc(@RequestBody String text) {

        return text;

    }

enter image description here

代币。拦截器。ts

    import { Injectable } from '@angular/core';
import {
    HttpRequest,
    HttpHandler,
    HttpEvent,
    HttpInterceptor,
    HttpResponse,
    HttpErrorResponse
} from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { map, catchError } from 'rxjs/operators';
import { Router } from '@angular/router';

@Injectable()
export class TokenInterceptor implements HttpInterceptor {

  constructor(private router: Router) {}
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

      const token = localStorage.getItem('token');
      if (token) {
        request = request.clone({
          setHeaders: {
            'Authorization': 'Bearer ' + token
          }
        });
      }
      if (!request.headers.has('Content-Type')) {
        request = request.clone({
          setHeaders: {
            'content-type': 'application/json'
          }
        });
      }
      request = request.clone({
        headers: request.headers.set('Accept', 'application/json')
      });
      return next.handle(request).pipe(
        map((event: HttpEvent<any>) => {
          if (event instanceof HttpResponse) {
            console.log('event--->>>', event);
          }
          return event;
        }),
        catchError((error: HttpErrorResponse) => {
          console.log(error);
          if (error.status === 401) {
            this.router.navigate(['login']);
          }
          if (error.status === 400) {
            alert(error.error);
          }
          return throwError(error);
        }));
  }
}

也许是我的错,我一整天都在大便

如果你能给我帮助,我将不胜感激

他们给了我可能的解决方案: Angulars HttpClient希望您的响应类型为json,并尝试对其进行解析。您可以告诉HttpClient接受纯文本

但我不知道怎么解决它


共 (1) 个答案

  1. # 1 楼答案

    AngularsHttpClient希望您的响应类型是json,并尝试对其进行解析。 您可以告诉HttpClient接受纯文本

    refactor(data: string): Observable<any>{
        const headers = new HttpHeaders().set('Content-Type', 'text/plain; charset=utf-8');
    
        return this.http.post(apiUrl, data,{headers,responseType: 'text'})
              .pipe(
                tap(_ => this.log('refactor')),
                catchError(this.handleError('refactor', []))
              );
    }