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

时间:2018-02-28 14:07:04

标签: javascript angular rest api web-services

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

Component on project

Service I have Used

2 个答案:

答案 0 :(得分:1)

  1. Chrillewoodz所述,它可以是OPTIONS请求。这是一些浏览器作为安全措施的飞行前请求,以确保服务器信任所完成的请求。你不能禁用它。

  2. 如果不是OPTIONS请求,请确保没有"点击"活动提交'按钮和" ngSubmit"在表格本身。像这样:

  3. enter image description here

答案 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