- 服務器的ip沒有設置成所有ip都能訪問的,或防火墻沒開
- 跨域問題(剛開始異源,有這個問題,主要是前端做一下配置代理,后端也可以配置跨域資源共享(CORS))
@Configuration public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*") // 允許所有來源.allowedMethods("GET", "POST", "PUT", "DELETE") // 允許所有請求方法.allowedHeaders("*"); // 允許所有請求頭} }
- 前端配置時的請求參數名和后端設置的不一致
- 前后端的數據格式不匹配,要統一為JSON字段類型(后端做個JsonUtils來序列化/反)
- 對于時間這個字段,后端要配置一下返回的格式,定義為LocalDateTime類型,并加上注解
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- 后端的某個字段的varchar設置的長度不夠
- 返回的code的統一,請求成功是1,有問題一律是0
- token的配置,過期時間和生效問題,以及要加上Bearer來標記,告知服務器請求中包含的是一個token(這個token是一種表示權限或身份驗證信息的憑證)
- 攔截器的問題,可能/index和/index/* 的細微差異就完全不一樣(
/index
:表示精確匹配路徑為?/index
?的請求,只能是這一個路徑才能被攔截,/index/*
:是一種通配符形式的路徑匹配,代表攔截以?/index/
?開頭的所有請求) - 獲取列表類似的接口,給前端返回數據的時候,返回成數組的形式,前端更好渲染(相比于返回對象)(若數據是「多個同類事物」(列表、集合)→ 用?數組;若數據是「一個事物的多屬性」或「多維度結果」(詳情、統計、接口響應體)→ 用?對象)
- 圖片有時候把網上的圖片鏈接存到數據庫中,前端那里展示的時候展示不出來,后續可以改進:通過 Nginx 將圖片目錄映射為 URL 路徑(如
http://服務器地址/images/xxx.jpg
),前端直接通過該 URL 訪問圖片 - nginx配置找不到資源的問題(配置了server里面的server_name和location路徑,用于主頁面index.html和靜態資源的單獨訪問)【要是反向代理:要啟動兩臺機器,假設是本機localhost和服務器ip,那就是訪問本機然后代理到服務器;顯然這種方案的局限性很明顯,所以可以申請一個域名,然后通過訪問域名代理到服務器,具體配置:proxy_pass 路徑
# 定義一個服務器塊,監聽 80 端口(HTTP 默認端口) server {listen 80;# 服務器的公網 IP 或已解析的域名(如 your-domain.com)server_name 1.2.3.4 your-domain.com; # 核心:所有請求(/ 開頭)轉發到后端服務location / {# 轉發目標:服務器本機的后端服務(IP:端口)proxy_pass http://127.0.0.1:3000; # 關鍵:向后端傳遞原始請求信息(否則后端獲取不到真實客戶端 IP、域名等)proxy_set_header Host $host; # 傳遞外部訪問的域名/IPproxy_set_header X-Real-IP $remote_addr; # 傳遞客戶端真實 IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 傳遞代理鏈 IPproxy_set_header X-Forwarded-Proto $scheme; # 傳遞協議(http/https)# 可選:配置超時時間(避免請求長時間阻塞)proxy_connect_timeout 60s; # 連接后端超時proxy_read_timeout 60s; # 讀取后端響應超時} }