TypeError: axiosCookieJarSupport is not a function, works in Node.JS but not .vue pages?
TypeError: axiosCookieJarSupport is not a function, works in Node.JS but not .vue pages?
我有一个网站验证功能,当我在基本的 node.js 脚本中 运行 它时它可以工作,但是当从 .vue 页面 运行 时它不起作用(使用 NuxtJS 框架)。
当我在 .vue 页面中 运行 它收到错误消息 TypeError: axiosCookieJarSupport is not a function
示例如下。
基本 .js 文件中的工作代码:
const axios = require("axios").default;
const axiosCookieJarSupport = require("axios-cookiejar-support").default;
const tough = require("tough-cookie");
const qs = require("qs");
async function main() {
let session = axios.create({
withCredentials: true,
baseURL: "xxx",
});
axiosCookieJarSupport(session);
session.defaults.jar = new tough.CookieJar();
let res = await session.post("/api/auth/login", qs.stringify({username: '', password: ''}))
.then((res) => {
console.log(res);
})
}
main();
.vue 页面中无效的代码:
<script>
const axiosCookieJarSupport = require('axios-cookiejar-support').default
const tough = require('tough-cookie')
const qs = require('qs')
export default {
methods: {
async login () {
const session = this.$axios.create()
axiosCookieJarSupport(session) // <-- error occurs here
session.defaults.jar = new tough.CookieJar()
const res = await session.$post('/api/auth/login', qs.stringify({ username: '', password: '' }))
.then((res) => {
console.log(res)
})
}
}
}
</script>
我试过将 const axiosCookieJarSupport = require('axios-cookiejar-support').default
移动到函数中,但没有任何区别。
如有任何帮助,我们将不胜感激。
因为这个库在浏览器中不起作用:
Browser
Running on browser, this library becomes noop (config.jar
might be ignored).
已通过更新我的 nuxt.config.js
文件修复:
axios: {
credentials: true,
proxy: true,
jar: true // <-- this was missing
},
.vue 页面中的代码现在是:
<script>
export default {
methods: {
async login () {
const qs = require('qs')
const session = this.$axios.create()
await session.$post('/api/auth/login', qs.stringify({ username: '', password: '' })).then((res) => {
console.log(res)
})
}
}
</script>
现在似乎正在存储会话,我可以在后续 api 调用中使用会话。
我有一个网站验证功能,当我在基本的 node.js 脚本中 运行 它时它可以工作,但是当从 .vue 页面 运行 时它不起作用(使用 NuxtJS 框架)。
当我在 .vue 页面中 运行 它收到错误消息 TypeError: axiosCookieJarSupport is not a function
示例如下。
基本 .js 文件中的工作代码:
const axios = require("axios").default;
const axiosCookieJarSupport = require("axios-cookiejar-support").default;
const tough = require("tough-cookie");
const qs = require("qs");
async function main() {
let session = axios.create({
withCredentials: true,
baseURL: "xxx",
});
axiosCookieJarSupport(session);
session.defaults.jar = new tough.CookieJar();
let res = await session.post("/api/auth/login", qs.stringify({username: '', password: ''}))
.then((res) => {
console.log(res);
})
}
main();
.vue 页面中无效的代码:
<script>
const axiosCookieJarSupport = require('axios-cookiejar-support').default
const tough = require('tough-cookie')
const qs = require('qs')
export default {
methods: {
async login () {
const session = this.$axios.create()
axiosCookieJarSupport(session) // <-- error occurs here
session.defaults.jar = new tough.CookieJar()
const res = await session.$post('/api/auth/login', qs.stringify({ username: '', password: '' }))
.then((res) => {
console.log(res)
})
}
}
}
</script>
我试过将 const axiosCookieJarSupport = require('axios-cookiejar-support').default
移动到函数中,但没有任何区别。
如有任何帮助,我们将不胜感激。
因为这个库在浏览器中不起作用:
Browser
Running on browser, this library becomes noop (config.jar might be ignored).
已通过更新我的 nuxt.config.js
文件修复:
axios: {
credentials: true,
proxy: true,
jar: true // <-- this was missing
},
.vue 页面中的代码现在是:
<script>
export default {
methods: {
async login () {
const qs = require('qs')
const session = this.$axios.create()
await session.$post('/api/auth/login', qs.stringify({ username: '', password: '' })).then((res) => {
console.log(res)
})
}
}
</script>
现在似乎正在存储会话,我可以在后续 api 调用中使用会话。