Как перенаправить в Vue.js на другой URL при нажатии? - PullRequest
0 голосов
/ 16 мая 2019

Я создаю почтовую доску с помощью Vue.js и пытаюсь перенаправить страницу при нажатии на каждое сообщение.

Я установил vue-route и axios.

В index.js,

export default new Router({
  route: [
    {
      path: '/',
      name: 'Post',
      component: Post
    },
    {
      path: '/:req_no',
      name: 'Detail',
      component: Detail
    },
  ]
})

В post.vue

<div @click="detailPost(post.no)">{{post.title}}</div>

.
.
.

detailPost(req_no) {
    this.$router.push({
    path: `https://dataURL/detail.php/${req_no}`
        })
      }

В деталях. Vue

<template>
    <div>
        {{contents}}
    </div>
</template>

<script>
import axios from 'axios';
export default {
    name: 'Datail',
    data() {
        return {
            req_no: this.$route.params.req_no,
            contents: {}
        }
    },
    created() {
      axios.get('https://dataURL/detail.php/', {
        params: {
          req_no: this.req_no
        }
      }).then(res => {
          this.contents = this.res.data
      });
    }
}
</script>

Я не уверен, куда поместить URL (в функции в post.Vue, detailPost () или в Detail.vue)

Если я вставлю это в функцию, я получу http://localhost:8080/#/http://dataURL/detail.php/2

Руководство по API говорит, что я должен использовать параметры.

Не могли бы вы помочь мне, где исправить? Большое спасибо !!

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Вы не можете использовать маршрутизатор для другого домена.

Смотрите этот ответ: https://stackoverflow.com/a/41654493/146656

Что вы можете сделать, это просто использовать vanilla JS:

window.location = `https://dataURL/detail.php/${req_no}`;
0 голосов
/ 16 мая 2019

Находится ли https://dataURL/detail.php в одном домене с вашим основным приложением?

Пожалуйста, попробуйте:

this.$router.push({
  path: `/detail.php/${req_no}`
})

Если это другой домен, вы можете использовать window.location

window.location = https://dataURL/detail.php/${req_no};

...