可以看出,当我在Angular 4上提交表单时,它会拨打2个电话进行一次通话。当我检查日志时,它知道它被击中了两次。我怎么能过来这个?当我提交所有表单时,它会插入两次相同的表单数据
答案 0 :(得分:1)
如Chrillewoodz所述,它可以是OPTIONS请求。这是一些浏览器作为安全措施的飞行前请求,以确保服务器信任所完成的请求。你不能禁用它。
如果不是OPTIONS请求,请确保没有"点击"活动提交'按钮和" ngSubmit"在表格本身。像这样:
答案 1 :(得分:0)
你可以通过制作一个布尔变量apiCalled
来解决它,如果它是假的,不要调用你的api,否则就叫它
@Injectable()
export default class myService {
apiCalled: boolean = false;
consturctor(private Http _http){
}
callApi() {
if(apiCall)
return;
else {
this.apiCall = true;
this._http.get("write url").subscripe(
res => {
}, err => {
}, ()=> {
this.apiCall = false;
}
)
}
}
}
一旦他完成了呼叫api,你就可以再次呼叫那个api