【问题标题】:Stop axios from sending options request阻止 axios 发送选项请求
【发布时间】:2021-06-01 05:30:57
【问题描述】:

我正在发送 axios post 请求,但浏览器首先发送选项请求。为了阻止这种情况发生,我创建了一个如下所示的配置对象:

const config = {
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
};

在我的应用程序的一部分中,它运行得非常好。这里是:

await this.$http.post("/editJob",this.job,config).then(response =>{
          let job = response.data;
          if(job){
            job = Job.convertObject(job);
            this.$store.commit("editJob",job);
          }
        }).catch(err =>{
          console.log(err);
          this.errMessages.push("There was a problem editing the Job. Contact your administrator.");
        })

但是在应用程序的不同部分,我发送了一个稍微复杂的 JS 对象,它仍然发送选项请求。这里是:

 await this.$http.post("/addUser",this.user,config).then(response =>{
          let user = User.convertObject(response.data);
          if(user){
            this.$store.commit("addUser",user);
          }else{
            this.errMessages.push("Unable to add the Employee. Please contact your administrator.");
          }
        }).catch(err =>{
          console.log(err);
          this.errMessages.push("Unable to add the Employee. Please contact your administrator.");
        });

后端清楚地记录了第二种情况下的 OPTION 请求,但我看不出 axios 调用有什么不同。我目前束手无策。如果有人有建议,请提前告诉我,谢谢。

迈克

【问题讨论】:

    标签: axios put options


    【解决方案1】:

    这是一个预检请求。

    阻止预检请求的解决方案是设置header Access-Control-Max-Age。

    Access-Control-Max-Age 响应标头指示预检请求的结果(即 Access-Control-Allow-Methods 和 Access-Control-Allow-Headers 标头中包含的信息)可以缓存多长时间.

    你可以找到更多关于它的信息here

    【讨论】:

    • 我不确定这是问题所在。问题是服务器(golang 服务器)在一种情况下接收选项请求,而不是另一种情况。如果我误解了您的回答,我深表歉意。
    • 我们说的是前端。忘记服务器。如果你抱怨 axios 正在执行预检请求,你可以在你的 axios 实例中定义一个带有 Access-Control-Max-Age 的标头来防止它。请求的“复杂性”与此无关。如果您想避免经常进行预检,只需根据需要更改标题即可。
    • 爱德华多,感谢您的耐心等待。如果我使用 Access-Control-Max-Age 定义了一个标头,我将设置标头的值(例如 0??)
    • 请参阅我发布的链接以获取完整的标题文档。但总而言之,您希望预检被缓存的秒数。
    • 爱德华多,感谢您提供的信息。它不能解决我的问题,即首先发送选项请求。看来我的解决方案只是缓存标头,无论我做什么都会失败。
    猜你喜欢
    • 2017-05-31
    • 2021-11-15
    • 2018-06-28
    • 2022-01-28
    • 2019-10-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多