首页 > 解决方案 > 错误类型错误:无法在“XMLHttpRequest”上执行“setRequestHeader”:值不是有效的字节字符串

问题描述

我使用 Node.js 和 Angular9 创建了一个应用程序。它用于允许任何人在网站上建立公司。当员工来创建公司时,他在网站上按下“创建公司”,会出现一个表格,填写公司名称、地址和域,当他按下“创建”按钮时,就会出现这个问题。知道后端是 NodeJs。
当我使用 Postman 创建公司时,我没有任何问题。问题仅出在 Angular 方面。当我从 Angular 端执行代码时,我遇到了这个问题:

ERROR TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': Value is not a valid ByteString

这个错误:

ERROR CONTEXT

这是代码:

公司.server.ts:

import { Injectable } from '@angular/core';
@Injectable()
export class CompanyService {
    constructor() { }
}

公司.server.spec.ts:

import { TestBed, inject } from '@angular/core/testing';
import { CompanyService } from './company.service';
describe('CompanyService', () => {
    beforeEach(() => {
        TestBed.configureTestingModule({
            providers: [CompanyService]
        });
    });
    it('should be created', inject([CompanyService], (service: CompanyService) => {
        expect(service).toBeTruthy();
    }));
});

数据服务.ts:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
import { platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { BoundDirectivePropertyAst } from '@angular/compiler';
@Injectable()
export class DataService {
    constructor(private httpClient: HttpClient) { }
    create_company(body): Observable<any> {
        var reqHeader = new HttpHeaders({
            'Authorization': localStorage.getItem('token'),
            'Content-Type': 'application/json'
        });
        return this.httpClient.post<any>
            ('http://localhost:3001/employee/company', body, { headers: reqHeader });
}

公司.component.ts:

import { Component, OnInit } from '@angular/core';
import { Router } from "@angular/router"
import { DataService } from '../../_services/data.service';
@Component({
    selector: 'app-company',
    templateUrl: './company.component.html',
    styleUrls: ['./company.component.css']
})
export class CompanyComponent implements OnInit {
    newCompany = {
        company: {
            name: '',
            address: '',
            domain: ''
        }
    }
    public id: string;
    public name: string;
    public roles: any;
    public email: string;
    public token: string;
    constructor(private dataService: DataService, private router: Router) { }
    createCompany() {
        console.log(JSON.stringify(this.newCompany));
        console.log(localStorage.getItem('token'));
        this.dataService.create_company(JSON.stringify(this.newCompany)).subscribe((data) => {
            console.log(data);
        })
    }
    logout() {
        localStorage.clear();
        this.router.navigate(['/register']);
    }

    ngOnInit() {
        this.roles = localStorage.getItem('roles');
        console.log(this.roles);
        this.id = localStorage.getItem('id');
        this.name = localStorage.getItem('name');
        this.email = localStorage.getItem('email');
        this.token = localStorage.getItem('token');

        localStorage.setItem('id', "14ll06y4kbne6x6g");
        localStorage.setItem('name', "Dalida");
        localStorage.setItem('email', "dalida@gmail.com");
        localStorage.setItem('roles', JSON.stringify([
            {
                roleId: 3,
                targetId: '0',
                employeeId: '14ll08o4kbm7apn9'
            },
            {
                roleId: 2,
                targetId: '4',
                employeeId: '14ll08o4kbm7apn9'
            }
        ]));
        localStorage.setItem('token', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjE0b… 
         I2MH0.wHUoGDYqZIsty1DqUxUtkuQReBUidS4mC0MAQi1bMtQ');
         }
}

我怎么解决这个问题?

标签: angular9

解决方案


推荐阅读