angular9 - 错误类型错误:无法在“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');
}
}
我怎么解决这个问题?
解决方案
推荐阅读
- acl2 - 遍历 ACL2 中的列表
- mailchimp-api-v3.0 - MailChimp 的 API v3 中的“点击报告”link_id 来自哪里?
- java - Java:序列化和反序列化 ArrayList
- vb.net - 在 VB 2017 中替换文本文件中的多行
- r - 数据表创建行
- ssl - 如何覆盖/替换/禁用 IIS 客户端证书验证
- java - 废弃的 API 和序列化
- python - 在 ChoiceField 中选择了我要获取的值
- javascript - 每当客户端请求页面时返回 URL
- android - 使用 Google Play 结算库成功购买订阅后,Android 应用程序崩溃