日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

corspost请求失败_vue项目CORS跨域请求500错误,post请求变options请求

發布時間:2024/10/8 vue 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 corspost请求失败_vue项目CORS跨域请求500错误,post请求变options请求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

vue項目CORS跨域請求500,post請求變options請求,到底是什么情況。

提示:以下內容是一個非專業開發的我對跨域的理解,并不10分準確。

一、先介紹為什么明明發送的是Post請求,為什么到服務器端就收到了Options請求,到底是誰在中間搞鬼。

要說明這個問題,要先搞明白什么是跨域。

跨域,就是不同源的網站之間想要傳輸內容,要解決的問題,全稱叫”跨域資源共享“,也稱CORS,不同源是指:協議(http,https)、端口、主域不同的站。舉例說明下:

1、https://www.linyufan.com/html/和https://www.linyufan.com/ex/index/就是同源。

2、http://www.linyufan.com和https://www.linyufan.com不同源,協議不同,端口也不同,http是80,https是443端口。

3、https://www.zacseo.cn和https://www.linyufan.com不同源,主域不一樣,即域名不一樣。

同源還是不同源,差不多就是這個意思,只要是不同源,就需要解決”跨域“問題。

二、跨域請求

既然是跨域請求了,就分兩類:1、簡單請求,2、非簡單請求,只要滿足下面的幾類,就是簡單請求,否則就不是簡單請求了。

(1) 請求方法是以下三種方法之一:HEAD、GET、POST

(2)HTTP的頭信息不超出以下幾種字段:Accept、Accept-Language、Content-Language、Last-Event-ID

Content-Type:只限于三個值application/x-www-form-urlencoded、multipart/form-data、text/plain

三、跨域流程

1、簡單請求

瀏覽器小伙發出跨域請求,方式(Method)可能是Post,也可能是Get,再帶上Headers信息,問題服務器想要一個資源,服務器一看,哦?小伙子不錯,知道行內規矩。

這么著吧,你等下,給瀏覽器小伙發一條響應頭,包含我服務器可以接受哪些請求,以什么方式等等。

然后告訴瀏覽器小伙,說我看看你請求的資源(包含不限于圖片、css、js等靜態資源,動態的另說),服務器開上自己的Apache或者Nginx小跑車,一路小跑,從這個文件夾跑到那個文件夾,收集夠了瀏覽器小伙請求的資源后,挨個將這些資源發給瀏覽器小伙,瀏覽器小伙完成前端頁面渲染和加載。

當然這個過程是極其快速及復雜的,還有Cookies、Session,Keep-live等,都需要商量,或者設置好。

總結跨域簡單請求就是,一切符合服務器請求規范的,都會立馬提供服務。

2、非簡單請求

除了上面說的簡單請求,另一個類型就是非簡單請求,只要請求方式不是上面說的幾種,Content-Type也不是上面說的幾類,比如像自己加了Headers這些,都會觸發瀏覽器進行非簡單請求。也就是會出現Options請求。

Options請求,也叫預檢請求,下面簡單說說流程。

你在瀏覽器輸入了一個網址,瀏覽器一看,里面有一些非簡單請求的信息,于是乎本著謹慎的態度向服務器先發了一條Options的請求,試探性的問問服務器大哥這個請求可行不?

同時攜帶【'access-control-request-headers',access-control-request-method】等請求信息,告訴服務器想這么來。

服務器老哥一看,喲,小伙子牛啊,自定義了Headers里的信息,牛歸牛,還是得按規矩來。檢查了一下自己的筆記本,老板(我)允許這么請求,這個時候我們就看到了Options的響應頭信息,里面有可以請求的類型,方式以及域等信息。

接下來瀏覽器小伙一看,知道了,就按你說的來,于是發送第二波請求,這個時候才是我們要想發送的請求,可能是Post或者Get等。

知道問題出在哪里,就有對應的解決辦法了。

四、CORS跨域Post請求變OPTIONS解決辦法

1、將非簡單請求改為簡單請求,但這個辦法好像不是太可行,畢竟我們自己加了Headers,就要發揮作用。

2、將后端請求到的OPTIONS忽略,或者做些別的用處。

3、牛B的解決辦法(我不是很清楚,肯定有)。

以上是我看一些對于CORS介紹的文檔,根據自己的理解寫的,年紀大了,也靜不下心來研究其所以然了,已經錯過了埋頭深干的勁了,只想著趕緊解決問題,其實還是有很多問題,不是很明白。

比如,為什么瀏覽器要先發一次OPTIONS請求?為什么在跨域的情況下,不同的瀏覽器返回的信息提示不一樣?

本文由 林羽凡 創作

本站文章除注明轉載/出處外,均為本站原創或翻譯,轉載前請務必署名

最后編輯時間為:

總結

以上是生活随笔為你收集整理的corspost请求失败_vue项目CORS跨域请求500错误,post请求变options请求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。