2017-07-04 61 views
0

enter image description here发送单一的点击

logout(){ 
 
    var destroySession='{"token":"'+this.token+'"}' 
 
    console.log("Session Destroy"+destroySession) 
 
    axios.post(eventBus.apiURL+'logout',{ 
 
    headers: { 
 
     'Content-type': 'application/json', 
 
    }, 
 
    body: destroySession, 
 
    }).then(response=>{ 
 
    console.log("RESadas :: "+JSON.stringify(response.data))   
 
    alert("Logout successfully..!") 
 
    this.$router.push('/')  
 
    },error=>{ 
 
    console.log(error); 
 
    alert("Some Issue for LogOut at Server Side..!") 
 
    
 
    }); 
 
    
 

 
    window.localStorage.removeItem('token') 
 
    window.localStorage.removeItem('name') 
 
    this.$router.push('/') 
 
}
<button @click="logout">Logout</button>

我在vuejs书面退出代码2 AJAX POST请求,但在单击时它发送两个POST请求和会话销毁时问题发生在服务器端。

+0

所以你想发送2个请求到服务器,或者你有问题,因为2个请求正在发送到服务器?如果是后者,当第一个请求开始时,您可以将“禁用”属性添加到按钮。 –

+0

问题是2请求正在发送 – AshD

回答

0

作为每Mozilla Developer Network

预检要求

不同于“简单的请求”(上面讨论的), “预检” 请求 第一个发送由OPTIONS方法的HTTP请求发送到资源上 其他域名,以确定实际请求是否为 可安全发送。跨站点请求以这种方式进行预检,因为它们可能对用户数据有影响 。

如果请求使用以下任何一种方法::

特别是,如果任何的下列 条件之一为真请求被预检

  • DELETE
  • CONNECT
  • 选项
  • TRACE
  • PATCH

或者,如果,除了由 用户代理(自动设置的标头,例如,连接,用户代理,或任何与所述定义的名称 其它头的抓取规格为“禁止 标题名称”),该请求包括除了那些 抓取规范定义为是“CORS-safelisted请求头”以外的任何标题, ,其如下:

  • 接受
  • 接受语言
  • 内容语言
  • 内容类型(但要注意下面的附加要求)
  • DPR
  • 下行
  • 保存,数据
  • 视口宽度
  • 宽度

或者,如果Content-Type标头的值为 其他值r除以下几点:

  • 应用程序/ x-WWW窗体-urlencoded
  • 的multipart/form-data的
  • 纯文本/

更新

请阅读关于如何禁用预检请求的答案:Link

+0

你建议使用POST发送一个请求再见? – AshD

+0

您的功能只发送一个发布请求。第一个只是检查发送请求是否安全发送。 –

+0

如果您看到第二个请求,则您只会知道请求数据仅在该请求上发送。 –