首页 > 解决方案 > VueJs - 在页面重新加载之前等待 OPTION 响应

问题描述

当用户关闭或刷新页面时,我正在尝试向后端发出 put 请求。我已经添加了事件监听器,当这些事件发生时我可以运行我的函数。但我的问题是,当这些函数发送一个 put 请求时,它们首先发送一个 option 请求,然后发送 put 请求。这对我来说是个问题,因为当我检查后端日志时,我看到服务器收到了选项请求(并获得 200 状态代码),但 put 请求没有。

这是我的代码:

<template>
    <div id="app">
        App
    </div>
</template>

<script>
    import axios from "axios"

    export default {
        name: "App",
        mounted() {
            window.addEventListener("beforeunload", this.reload)
        },
        methods: {
            reload() {
                this.sendRequest()
            },
            sendRequest() {
                axios.put("http://xxxx:pp")
            }
        }
    }
</script>

<style scoped>

</style>

标签: vue.jsaxios

解决方案


一种简单的解决方法是使用post而不是完全put避免options请求。来自MDN

跨站点请求是这样预检的......如果:

  • 它使用 GET 或 POST 以外的方法

如果您不想这样做,则需要options通过提供 CORS 标头来处理后端服务器的请求。


推荐阅读