網站首頁 編程語言 正文
跨域報錯: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
相關推薦
- 2023-02-02 Go并發與鎖的兩種方式該如何提效詳解_Golang
- 2022-09-14 關于Python文本生成的Beam?Search解碼問題_python
- 2022-09-06 C#面向對象編程中接口隔離原則的示例詳解_C#教程
- 2022-12-08 c++只保留float型的小數點后兩位問題_C 語言
- 2022-06-20 .NET?Core企業微信網頁授權登錄的實現_實用技巧
- 2022-07-07 圖解AVL樹數據結構輸入與輸出及實現示例_C 語言
- 2022-12-13 Python實現根據Excel生成Model和數據導入腳本_python
- 2022-07-09 Android開發Dart?Constructors構造函數使用技巧整理_Android
- 最近更新
-
- 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同步修改后的遠程分支