Spring Boot 错误[hpm]试图代理请求站点时发生错误

nnsrf1az  于 2023-10-16  发布在  Spring
关注(0)|答案(1)|浏览(129)

第一次做项目,后端数据不是来自3000个端口。我真的不知道有什么问题。如果你能告诉我我会很感激的。

Springboot TestController

package com.example.joyit;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/api/test")
    public String text(){
        return "test api";
    }
}

App.js

import React, {useState,useEffect} from 'react';
import axios from 'axios'
import './App.css';

function App() {
  const [testStr, setTestStr] =useState('');

  function callback(str){
    setTestStr(str);
  }
  useEffect(
    ()=>{
      axios.get('/api/test')
      .then((Response)=>{callback(Response.data)})
      .catch((Error)=>{console.log(Error)})
    }, []
  );

  return (
    <div className="App">
      <header className="App-header">
        
        api/test =={'>'}
          {testStr}
        
      </header>
    </div>
  );
}

export default App;

setupProxy.js

const{createProxyMiddleware} = require('http-proxy-middleware');

module.exports = function (app){
    app.use(
        '/api',
        createProxyMiddleware({
            target:'http://127.0.0.1:8080',
            changeOrigin:true,
        })
    );
};

后端数据不会出现。
如果你能告诉我怎么解决这个问题,我将非常感激。

ibps3vxo

ibps3vxo1#

如果你在reactjs中使用axios,最好使用service class来调用api。

class ApiService{
async getData(){
    const response = await axios.get('/api/test')
    return response;
  }
}

您可以在以后使用tryCatch语句在任何其他组件中重用它。

const fetchData = async() => {
       try {
            const response =await apiService.getData()
            setTestStr(response.data)
        } catch (error) {
          toast.error(error.response.data)
        }

}

 useEffect(() => {
        fetchData()
    }, [])

如果你使用的是SpringBoot,你可以使用ResponseEntity类来响应body。

@GetMapping("/api/test")
    public ResponseEntity<String> text(){
        return new ResponseEntity("test api",HttpStatus.Ok);
    }

另外,如果你使用的是SpringSecurity,请确保它有访问该方法的权限。

相关问题