網站首頁 編程語言 正文
跨域報錯:Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origi
作者:逆襲的小學生 更新時間: 2022-03-15 編程語言在編寫一個簡單POST跨域請求時碰到了這個問題,我看了下網上的答案,感覺我好像也都做到了,但是就是不行,我將核心問題進行了抽象,抽象為下面的代碼:
前端是這樣的:
$.ajax({
type: "post",
url: "http://localhost:8081/test/testUploadPhoto",
dataType: "json",
data:{
canvasPhotoBase64Data:"dataUrl",
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
},
success: function (data) {
console.log("已接收")
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
console.log("errorThrown:"+errorThrown);
}
});
后端是這樣的:
@RequestMapping("/test")
@RestController
public class TestUpload {
@RequestMapping("/testUploadPhoto")
public String testUploadPhoto(String canvasPhotoBase64Data, HttpServletResponse response){
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
System.out.println(canvasPhotoBase64Data);
return "123";
}
}
感覺沒啥問題,然而就是下面的錯誤
Access to XMLHttpRequest at 'http://localhost:8081/test/testUploadPhoto' from origin 'https://localhost:8044' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
于是我試著把前端的這部分刪除了
beforeSend: function(xhr) {
xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
},
然后就跑通了...不知道為啥把request請求的這個請求頭刪掉就行了,我把兩個請求放在這對比一下,記錄一下,以后有機會再來分析,有點忙暫時沒時間分析了。
失敗的跨域:
?
成功的跨域:
?
總結:
跨域這個真的是從最開始開發項目就經常遇到的問題,每次一遇到跨域的問題就是百度一通,把能加的配置一加,然后后面能跑通了就行了,這次跨域的失敗讓我發現其實跨域這個好像不需要配置太多,在后端增加幾個參數就行了,不用前端后端加一堆東西,在此也算做個記錄,如果下次再遇到跨域問題我看看是不是一樣的。
?
?
?
?
?
?
原文鏈接:https://blog.csdn.net/q610376681/article/details/111477391
相關推薦
- 2022-10-07 C語言順序查找算法介紹及示例_C 語言
- 2022-03-03 【問題】remote: Support for password authentication wa
- 2022-09-01 jquery實現全選功能_jquery
- 2022-05-27 C++?超詳細快速掌握二叉搜索樹_C 語言
- 2022-07-18 properties配置文件解耦合連接數據庫的原理
- 2022-10-27 Kotlin?Flow操作符及基本使用詳解_Android
- 2023-12-09 如何使用Python核對文件夾內的文件
- 2022-04-22 git push時出現403,443
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支