使用window.location.hostname时生成意外的URL

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我试图附加URL,但生成的URL不是预期的。下面是我测试的代码及其结果。

由于我使用本地服务器来测试我的系统,所以请求的URL是http://127.0.0.1:8000/api/posts。我将在不久的将来将此系统部署到远程服务器,因此我不能像现在这样使用请求URL。根据下面的代码,我要做的是获取当前主机名并将其附加到路由URL但它会产生奇怪的URL。怎么解决这个?

零件

created() {
        var test = window.location.hostname + '/api/posts';
        this.axios.get(test).then(response => {
        this.posts = response.data.data;
    });

路线Api(api.php)

Route::get('/posts', 'PostController@index');
提问于
用户回答回答于

如果您不想配置基本URL,只需在axios请求中使用绝对URL:

this.$axios.get('/apiposts')

前缀/是重要的部分。

用户回答回答于

您可能不需要设置baseURL。你试过定义baseURL吗?例如:

axios.get(`${process.env.HOST}:${PORT}/api/categories`)

在您的代码中添加此代码: /src/main.js

const baseURL = 'http://localhost:8080';
if (typeof baseURL !== 'undefined') {
  Vue.axios.defaults.baseURL = baseURL;
}

请参阅此处的解决方案在VueAxios中从.env设置baseURL

我认为在您的应用中,baseURL设置为http://127.0.0.1:8000(默认),您将主机附加到此行中的此URL var test = window.location.hostname + '/api/posts';。没有这个就试试吧。

扫码关注云+社区

领取腾讯云代金券