当我从 angular 403 应用程序发送 http post 请求时,我收到 2 禁止错误。 下面是form.component.ts和service.ts的代码。
form.component.ts
`import {Component, OnInit} from '@angular/core';
import { RegisterUser} from '../Model/RegisterUser';
import { RegisterService } from
'../Services/RegisterService';
@Component({
selector:'register-user-form',
templateUrl:'/app/Htmls/Register.html',
providers : [RegisterService]
})
export class RegisterUserComponent implements OnInit{
submitted=false;
constructor(private registerUserService : RegisterService ){
}
ngOnInit(){
}
onSubmit(value:RegisterUser){
this.registerUserService.pushUser(value).subscribe(
);
console.log(value) ;
}
}`
以下是服务。
import { Injectable } from '@angular/core';
import { Headers,Http, Response } from '@angular/http';
import { RegisterUser} from '../Model/RegisterUser';
import 'rxjs/add/operator/map';
@Injectable()
export class RegisterService {
private headers = new Headers({'content-type': 'application/json'});
constructor(private _http : Http){}
pushUser(registerUser:RegisterUser){
console.log("submittin user "+JSON.stringify(registerUser));
const url:string="http://localhost:8080/register/saveUser";
return this._http.post(url,JSON.stringify(registerUser),
{headers:this.headers}).
map((response:Response) => response.json());
}
}
请帮忙!
也许您在 Spring 控制器中缺少@CrossOrigin注释以允许来自不同来源的请求,例如您从 Angular 应用程序发送
的请求它从邮递员开始工作,因为您正在发送来自与 spring 应用程序相同的来源的请求
示例:spring服务器本地主机:3000,角度服务器本地主机:8080,那么如果没有@crossOrigin就无法访问3000,但可以直接从邮递员访问3000