如何在Angular 4上多次避免相同的API调用?

问题描述 投票:0回答:2

可以看出,当我在Angular 4上提交表单时,它会拨打2个电话进行一次通话。当我检查日志时,它知道它被击中了两次。我怎么能过来这个?当我提交所有表单时,它会插入两次相同的表单数据

Component on project

Service I have Used

javascript angular rest api web-services
2个回答
1
投票
  1. 正如Chrillewoodz所提到的,它可以是OPTIONS请求。这是一些浏览器作为安全措施的飞行前请求,以确保服务器信任所完成的请求。你不能禁用它。
  2. 如果它不是OPTIONS请求,请确保您没有“提交”按钮上的“点击”事件和表单本身上的“ngSubmit”。像这样:

enter image description here


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

© www.soinside.com 2019 - 2024. All rights reserved.