簡體   English   中英

axios.get 不將參數從客戶端傳遞到服務器

[英]axios.get not passing params from client side to the server

作為標題, axios.get 沒有將參數從客戶端傳遞到服務器。 我的服務器當前在 localhost:3001 上,我的客戶端在http://127.0.0.1:5555上。 客戶端不是 React,因此它當前位於http://127.0.0.1:5555/WeatherApp/index.html上(我使用 FiveServer 在 vscode 的 chrome 上打開了 index.html 文件,即“應用程序的入口點” ,它是客戶端托管的端口)

客戶端代碼:

export async function fetchData() {
  const { data } = 
  await axios.get('http://localhost:3001/api', {
    params: {q: 'Paris'}
  })
  return data
}

服務器端代碼:

app.get("/api", async (req, res) => {
  console.log(req.query)
  const response = await axios.get('http://api.weatherapi.com/v1/current.json', {
    params: {
      key: process.env.KEY,
      q: 'Paris'
    }
  })
  const { data } = response
  res.send(data)
})

服務器代碼中的 console.log(req.query) 打印了一個空對象。 我也嘗試了 req.params,但它也打印了一個空對象(雖然我想看到“巴黎”)。 嘗試使用 console.log(req) 來查看“Paris”這個詞可能嵌套在哪里,但找不到。

如果您想隨請求一起發送正文,您會希望發出 POST 請求,因為您不使用它傳遞正文,但您可以使用 URL 中的參數以 GET 形式將信息傳遞給服務器要求

你可以在這里閱讀更多

我正在使用這兩個代碼片段,它確實有效......也許你錯過了一些重要的東西:

服務器.js

const express = require('express')
const app = express()
const port = 3000

app.get('/api', (req, res) => {
  console.log(req.query)
  res.send('Hello World!')
})

app.listen(port, () => {
    console.log(`Example app listening on port ${port}`)
})

客戶端.js

const axios = require('axios');

axios.get('http://localhost:3000/api', {
      params: {q: 'Paris'}    
}).then(({data}) => console.log(data));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM