vue3页面跳转遇到 Discarded invalid param(s) “message“ when navigating

最近写了一个vue3的项目,在使用路由跳转的时候发现了一个问题,记录分享一下。

1.我在使用useRouter时,发现使用params传参,会使得跳转的页面接受不到参数,会报错,显示

Discarded invalid param(s) "message" when navigating

这个错误,无效参数。

代码如下:页面a跳转到页面b

     页面a:

<template>
  <div class="home">
    <div class="TiaoZhuan" @click="jump()">跳转</div>
  </div>
</template>

<script setup>
import { useRouter } from 'vue-router';
const Router=useRouter()

let params={message:'你真是一个好人,我好爱你啊'}
function jump(){
  Router.push({name:'about',params:{params}})
}
</script>

   页面b:

<template>
  <div class="about">
    <h1>{{ useMessage }}</h1>
  </div>
</template>

<script setup>
import { useRoute } from 'vue-router';

const route=useRoute()

let useMessage=route.params.message
</script>

2.后来我查找了一下资料,发现从Vue Router的2022-8-22 这次更新后,我们使用上面的方式在新页面无法获取。vue Router也提供了解决方法。 

      (1).query传参

          query传参是可以正常传参数的,但是传的参数会显示在url地址栏上。这里我就不介绍了。

        (2).使用 History API 方式传递和接收

          代码如下:

              页面a:

<template>
  <div class="home">
    <div class="TiaoZhuan" @click="jump()">跳转</div>
  </div>
</template>

<script setup>
import { useRouter } from 'vue-router';
const Router=useRouter()

let params={message:'你真是一个好人,我好爱你啊'}

function jump(){
  Router.push({name:'about',state:{params}})
}
</script>

               页面b:

<template>
  <div class="about">
    <h1>{{ useMessage }}</h1>
  </div>
</template>

<script setup>
let useMessage=history.state.params.message

console.log(history.state)
</script>

     这样你就可以正常的接受参数了。

“无效的 host header(invalid host header)”是 Vue3 应用常见的错误提示信息,通常出现在应用部署到生产环境时。一般情况下,该错误的主要原因是由于在代理服务器或反向代理服务器中的配置问题所导致的。 通常情况下,本地开发时,Vue3 应用使用的是 webpack-dev-server 来运行和 debug。而在生产环境中,我们需要将应用部署到一个稳定的服务器上。为了将 Vue3 应用部署到生产环境中,我们通常会使用 Nginx、Apache 或者其他的服务器软件,以便对请求进行转发和负载均衡等。 在实际部署过程中,我们可能会遇到“无效的 host header”这个错误提示。这通常是因为代理服务器或反向代理服务器的配置中没有正确地设置相关的 host 头信息,或者设置的信息与实际情况不符所引起的。因此,我们需要修正代理服务器或反向代理服务器的配置。 如果使用 Nginx 作为反向代理服务器,我们需要在 Nginx 的配置文件中增加以下代码: ```nginx location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://your-server; } ``` 这样设置后,Nginx 将会使用真实的 host 头信息并将请求转发给指定的服务器。如果你使用的是其他的服务器软件,你也需要根据具体的情况进行相应的设置。 综上所述,“无效的 host header”错误提示通常是由代理服务器或反向代理服务器的配置问题所引起的。如果你在部署 Vue3 应用时遇到了这个问题,需要检查代理服务器或反向代理服务器的配置,确保 host 头信息的设置是正确的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值