【发布时间】:2019-06-09 05:54:25
【问题描述】:
我正在尝试附加 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 前加上
forward slash,那么 axios 就足够聪明,知道无论如何都要使用主机名。 -
那么怎么解决呢?
-
但是如果我当前的 url 是
foo/bar/怎么办?这将创建http://127.0.0.1:8000/foo/bar/api/posts。如何制作http://127.0.0.1:8000/api/posts? -
不,不会。如果您不使用
/,那么它将假定relative路径。如果您确实使用/,那么它将假定它是根路径。 -
没有。我说的是相对 URL 和绝对 URL 之间的区别。如果您不使用
/,则它与当前 URL 相关。所以如果你在http://127.0.0.1:8000/foo/bar并且你做了this.axios.get('apiposts')那么你的URL 就是http://127.0.0.1:8000/foo/bar/apiposts。但是如果你做了this.axios.get('/apiposts'),那么它就是http://127.0.0.1:8000/apiposts。因为`贴
标签: javascript laravel vue.js