使用 Vue + axios 時,返回狀態200,返回值被瀏覽器攔截


一、前言

在使用 Vue + TypeScript + axios 時,后端已經配置了Cors的前提下,但是在請求接口的時候,返回狀態為 200,但是返回值卻被瀏覽器給攔截了。

二、解決方案

1. 在全局定義

在 main.ts(main.js) 中增加一條 axios 的配置,withCredentials 默認為 false,所以為一條。

	import Vue from 'vue';
	import App from './App.vue';
	import router from './router';
	import axios from 'axios';

	Vue.config.productionTip = false;

	// 不能設置為 true
	axios.defaults.withCredentials = false;
	// 定義代理服務器的主機名和端口
	axios.defaults.proxy = {
  		host: 'http://localhost', 
  		port: 5000,
	};

	new Vue({
  		router,
  		render: (h) => h(App),
	}).$mount('#app');
2. 單獨定義

將 proxy 直接定義到單個請求中

	let url = `http://localhost:5001/identity`;
	const result = await axios({
		method: 'GET',
		url,
		proxy: {
			host: 'http://localhost',
			port: 5001,
		},
	});

參考文檔:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM