假設我們有一個本地的json文件,路徑為:/mock/data.json。在使用axios發送請求時,我們遇到了跨域的問題。
一種常見的解決方案是在本地啟動一個服務器,然后將json文件放在服務器上。但如果我們不想這樣做,我們可以使用webpack-dev-server來模擬一個服務器。
首先,在項目根目錄下創建一個mock文件夾,在該文件夾中創建一個data.json文件,并填入以下內容:
{ "name": "小明", "age": 18, "gender": "male" }
接下來,在webpack配置文件中增加以下代碼:
devServer: { contentBase: './dist', // 服務器的根目錄為dist before(app) { // 在發送請求前做些什么 app.get('/api/data', (req, res) =>{ // 模擬服務器接口 res.json(require('./mock/data.json')) }) }, },
在上述代碼中,我們定義了一個api/data接口,用于返回data.json文件中的內容。接下來,在頁面中使用axios發送請求:
axios.get('/api/data') .then((response) =>{ console.log(response.data) }) .catch((error) =>{ console.log(error) })
在上述代碼中,我們使用axios發送了一個get請求到/api/data接口,并打印了返回的數據。此時,我們在瀏覽器中運行該頁面,即可成功獲取到本地的json數據。