#按照网上的方法配置跨域,但是就是不成功
vite.config,js:
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
server: {
port: 5174,
host: 'localhost', //前端服务启动后的访问ip,默认为localhost, host和port组成了前端服务启动后的访问入口。
https: false,
open: false,
proxy: {
// 自定义请求的开头,使用代理方式处理/demo开头的请求,/xxx可以自定义
"/cloudhub": {
// 往哪个服务器发请求
target: "http://suggest.taobao.com",
changeOrigin: true,
pathRewrite: {
// ^代表字符串开头,实际发送请求时,会把请求开头的/demo删除
// 因为/demo并不是请求的一部分,只是个代理的标识
"^/cloudhub": ""
}
}
}
}
});
App.vue:
<template>
<div>
<h1>发送HTTP请求,展示JSON数据</h1>
<!-- 输入参数 -->
<input v-model="para" type="text" placeholder="输入参数">
<!-- 点击按钮触发请求 -->
<button @click="sendRequest">发送请求</button>
<!-- 显示返回的JSON数据 -->
<div v-if="responseData">
<h2>返回的JSON数据:</h2>
<p>{{ responseData }}</p>
</div>
</div>
</template>
<script>
import { ref } from 'vue';
import axios from 'axios';
export default {
setup() {
const para = ref('');
const responseData = ref(null);
// const address='/sessiontest';
const proxysign='/cloudhub/sug'
const sendRequest = () =>{
if (para.value.trim() === '') {
responseData.value = null; // 清空数据
return;
}
// let url = proxysign+address;
// console.log('url:'+url)
//发送HTTP请求
axios({
method: 'get',
url: proxysign,
params: {
code: 'utf-8',
callback:'cb',
q:para.value
},
})
.then(response => {
// 请求成功时将数据存储到responseData中
responseData.value = response.data;
console.log(response.data);
})
.catch(error => {
console.error('请求出错', error);
});
};
return {
para,
responseData,
sendRequest,
};
},
};
</script>
运行截图:
可以看到“cloudhub”没有被替换成空串,并且跨域仍然限制,我不明白我哪里错了