[英]React on NodeJS can POST to Spring Boot REST API but can't PUT to the same API - CORS issue
我在Node上運行的React應用程序可以對Spring Boot REST API進行GET和POST調用,但是當嘗試調用PUT時,瀏覽器控制台會在控制台中顯示OPTIONS請求返回403和以下消息:
無法加載http:// localhost:8080 / project / 65 :對預檢請求的響應未通過訪問控制檢查:所請求的資源上沒有'Access-Control-Allow-Origin'標頭。 因此,不允許訪問源' http:// localhost:3000 '。 響應的HTTP狀態碼為403。
我可以從Postman撥打相同的PUT電話,效果很好。
我的Spring Boot應用程序具有以下CORS配置,但這僅適用於自身提供的HTML,對React應用程序沒有影響嗎?
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:8080", "http://localhost:3000");
}
}
大量在Node中啟用CORS的搜索已經發現了很多有關Express的知識,但這似乎無濟於事。
由於瀏覽器用作強制執行cors,因此很難為本地主機(從瀏覽器)啟用cors。
順便說一句:這就是為什么它可以與工具(除了在瀏覽器中運行)一起使用的原因,因為它們不是瀏覽器,所以不會強制執行。
最簡單的方法是運行中間件節點快速服務器。
由於http服務器不會用cors填充請求,因此應該不再有cors問題。
因此,過程如下:
前端呼叫請求到本地http服務器 , 本地http服務器又向PayPal服務器發出請求,因此:
前端->本地http-> PayPal服務器->本地http->前端
前端和http的來源不同,因此對本地http的前端請求並不關心cors
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.