Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我访问我的组件时,为什么axios发出两个GET请求而不是一个?_Javascript_Vue.js_Axios_Quasar Framework - Fatal编程技术网

Javascript 当我访问我的组件时,为什么axios发出两个GET请求而不是一个?

Javascript 当我访问我的组件时,为什么axios发出两个GET请求而不是一个?,javascript,vue.js,axios,quasar-framework,Javascript,Vue.js,Axios,Quasar Framework,我正在使用Quasar框架和Vue.js构建服务器端渲染(SSR)应用程序。我的应用程序的一部分涉及使用axios发出ajax请求。我注意到一些奇怪的axios行为,我将在下面描述 我在quasar中创建了一个axios引导文件: axios.js import axios from "axios"; export const api = axios.create({ baseURL: process.env.VUE_APP_API_URL }); api.defaul

我正在使用Quasar框架和Vue.js构建服务器端渲染(SSR)应用程序。我的应用程序的一部分涉及使用axios发出ajax请求。我注意到一些奇怪的axios行为,我将在下面描述

我在quasar中创建了一个axios引导文件:
axios.js

import axios from "axios";

export const api = axios.create({
  baseURL: process.env.VUE_APP_API_URL
});
api.defaults.withCredentials = true;

export default ({ Vue, store }) => {
  Vue.prototype.$axios = api;
  store.$axios = api;
};

然后我在我的
quasar.conf.js
文件中这样指定:

...
boot: [
  'axios',
],
...
我的应用程序中有一个组件,我可以通过在浏览器中键入
localhost.myapp.com:8082/scents/scents title
直接访问该组件。在这个组件中,我定义了一个
预取
钩子,如下所示:

async preFetch({ store, currentRoute, ssrContext }) {
  const { data } = await store.$axios.get("/v1/episodes/titles/" + currentRoute.params.slug)
  store.commit('setEpisode', data)
},
这会向我的java后端发出两个请求。第一个请求有一个null
Origin
头。第二个调用的非null
Origin
头等于我的UI应用程序URL的值。我的java后端只允许特定的源代码值列表向其发出请求,因此第一个请求失败,因为
源代码
头为null。这两种请求HTTP类型都是
GET
请求。这里没有任何有意义的选项请求,因为我的理解是,
GET
请求并不总是需要飞行前

以下是
GET
request#1中的
user-agent
标题。我觉得这很有趣。为什么该值正好
axios/0.18.1
。我以前从未在水疗开发领域见过这种情况。同样,请求#1没有
Origin
头。

以下是来自
GET
request#2的
user-agent
标题。这些更符合我的预期。

我应该注意到,如果我不直接访问浏览器中的
localhost.myapp.com:8082/scents/scents title
,而是通过主页导航到它,则只会发出一个http
GET
请求,如果我直接访问浏览器中的同一url,我希望这是相同的行为

我想更好地理解,SSR开发是否有内在的原因,使得axios发送两个
GET
请求,请求一个我不知道的简单HTTP请求。我是否需要在UI应用程序中的节点服务器上设置一些CORS策略?我从来没有遇到过这样的问题,axios对我来说一直都很直截了当