vue請求后端數(shù)據(jù)和跨域問題解決
最近遇到的一個(gè)問題 后端寫好的接口,前端怎么獲取數(shù)據(jù)呢?
這是我后端的接口:GET 接口

這是我前端運(yùn)行的項(xiàng)目地址:

簡單使用:
咱門前端使用 頗受好評的 axios 來發(fā)起請求
這是它的官網(wǎng):https://www.axios-http.cn/
不過要在vue中使用它,就需要先安裝 打開終端 輸入一下命令
npm install axios
然后在需要使用的 頁面 <script> 中標(biāo)簽 引入 axios就行了
import axios from 'axios'
然后在methods中 創(chuàng)建一個(gè)函數(shù):代碼如下
a() {
// const axios = require('axios'); // 官方給出的例子 這段話類似于 import
axios.get('http://localhost:8088/user') // 這里填寫后端的地址
.then(function (response) {
// 處理成功情況
console.log(response);
})
.catch(function (error) {
// 處理錯(cuò)誤情況
console.log(error);
})
.then(function () {
// 總是會(huì)執(zhí)行
});
}require 和 import 具體詳情,可以查閱相關(guān)資料
寫完之后在 div中寫一個(gè) <button> 標(biāo)簽<button @click="a()">點(diǎn)我 a</button>
打開控制臺可以看到,data里面有三條數(shù)據(jù)


看到這里,我們就請求到了后端數(shù)據(jù)(后端一定要允許跨域請求)
改進(jìn)
寫完你這里例子之后,又寫了幾個(gè)請求,發(fā)現(xiàn)呢,每次都要復(fù)制黏貼,還有好多重復(fù)性代碼,就想到,應(yīng)該可以把這個(gè)axios封裝一下
先去網(wǎng)上查找一些封裝的案例,發(fā)現(xiàn),,,,看不懂(并不難的鴨子)
然后自己手動(dòng) 簡單封裝一下 axios
在src 目錄下新建一個(gè) utils 目錄,然后再建一個(gè) request.js 文件在里面寫一下代碼
/*引入axios*/
import axios from 'axios'
const request = axios.create({
baseURL: 'http://localhost:8088' // 接口服務(wù)器地址
});
// // 創(chuàng)建實(shí)例后修改默認(rèn)值
// instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
// //前端采用export.default,在寫后端代碼時(shí)用module.export
export default request在src中新建一個(gè) api 目錄, 在目錄中新建有一個(gè) demo.js ( 根據(jù)接口作用取名字,這里為測試demo )寫入以下代碼
import request from '../utils/request' // 引入 request 類(模塊)
export function getList(params={}) {
return request({
methods:'GET',
url:'/user',
params,
})
}在url中,可以直接 用 / 和接口 地址拼接 然后設(shè)置methods 方式 ,axios 中默認(rèn)為 get,getList是一個(gè)方法名
回到vue的頁面上,在我們需要的vue中寫 import { getList } from "../api/demo" 導(dǎo)入這個(gè)方法
然后再methods中創(chuàng)建一個(gè)函數(shù) ,重寫這個(gè)方法
b(){
getList().then(function(response){
console.log(response);
}).catch(function(error){
console.log(error);
});
}最后這個(gè)方法可以用于點(diǎn)擊事件,如果與crated中,就必須是使用回調(diào)函數(shù)
getList(){
listUser()
.then(response =>{ // 回調(diào)函數(shù)使用箭頭函數(shù)來使用。(responde)=>{}
this.tableData = response.data;
})
},跨域問題解決:
凡事不要慌,能解決的事,那都不是事~
我是在后端Controller 層加了 @CrossOrigin 注解
跨域報(bào)錯(cuò):

如有問題,后續(xù)更新,先記錄一下
到此這篇關(guān)于vue請求后端數(shù)據(jù)和跨域問題的文章就介紹到這了,更多相關(guān)vue請求后端數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue解決跨域問題的幾種常用方法(CORS)
- vue項(xiàng)目配置代理如何解決跨域問題
- vue跨域問題:Access?to?XMLHttpRequest?at‘httplocalhost解決
- vue使用反向代理解決跨域問題方案
- 解決Vue前后端跨域問題的方式匯總
- vue3解決跨域問題詳細(xì)代碼親測有效
- Vue項(xiàng)目中該如何解決跨域問題
- vuecli3打包后出現(xiàn)跨域問題,前端配置攔截器無效的解決
- Vue3設(shè)置Proxy代理解決跨域問題
- VUE跨域問題Access to XMLHttpRequest at
- 前端vue打包項(xiàng)目,如何解決跨域問題
- Vue解決跨域問題常見方法詳解
相關(guān)文章
Vue2?Element?description組件列合并詳解
在使用Vue的時(shí)候經(jīng)常會(huì)涉及到表格的列合并,下面這篇文章主要給大家介紹了給大家Vue2?Element?description組件列合并的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
vue2.0 如何把子組件的數(shù)據(jù)傳給父組件(推薦)
這篇文章主要介紹了vue2.0 如何把子組件的數(shù)據(jù)傳給父組件,需要的朋友可以參考下2018-01-01
解決vue項(xiàng)目Error:Cannot find module‘xxx’類報(bào)錯(cuò)問題
當(dāng)npm運(yùn)行報(bào)錯(cuò)Error:Cannot find module 'xxx'時(shí),通常是因?yàn)閚ode_modules文件或依賴未正確安裝,解決步驟包括刪除node_modules和package-lock.json文件,重新運(yùn)行npm install,并根據(jù)需要安裝額外插件,若網(wǎng)絡(luò)問題導(dǎo)致安裝失敗2024-10-10
vue中控制mock在開發(fā)環(huán)境使用,在生產(chǎn)環(huán)境禁用方式
這篇文章主要介紹了vue中控制mock在開發(fā)環(huán)境使用,在生產(chǎn)環(huán)境禁用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vite項(xiàng)目如何集成eslint和prettier
這篇文章主要介紹了vite項(xiàng)目如何集成eslint和prettier問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
使用yarn?build?打包vue項(xiàng)目時(shí)靜態(tài)文件或圖片未打包成功的問題及解決方法
這篇文章主要介紹了使用yarn?build?打包vue項(xiàng)目時(shí)靜態(tài)文件或圖片未打包成功的問題及解決方法,解決方法不復(fù)雜通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08

