【ピット】前後端分離開発におけるドメイン間問題およびフロントにクッキーを持たない問題
4722 ワード
文書ディレクトリ
前言
session
がありません.バラバラ.のその日は私の実习生活の28日目で、初めて前后の分离开発に接触して、私は感じて、ゆっくりと前后の分离开発の真の意味を悟ったようです:たぶん前后の分离开発かもしれません;
ドメイン間問題
シーン1は、典型的なドメイン間問題であり、前後端で分離開発する際、フロントバックグラウンドコードが1台のサーバにないため、フロントエンドページサーバがバックグラウンドインタフェースにアクセスしたい場合、ブラウザの
により、これらのアクセスを拒否し、バックグラウンドがこれらの要求を受け取ることができない.バックグラウンドの構成が必要です.
ブロガーは
SSM
フレームワークを使用しているので、springMvc.xml
で構成されています.
<mvc:cors>
<mvc:mapping path="/**"/>
mvc:cors>
最も簡単で乱暴で、いかなるソースからのリクエストも受信します.
クッキー問題
ドメイン間アクセスの場合、ブラウザのデフォルトは
cookie
を持って行かないので、バックグラウンドのたびに要求に応じて新しいsession
が生成され、検証コード値はそれぞれのセッションに保存され、もちろん永遠の検証は通過しません.フロントは
Ajax
の要求を送信する時、ブラウザにドメイン間帯域cookie
を許可することを教えて、以下のように書きます.xhrFields:{withCredentials: true}
ブロッキングによるドメイン間問題
上記の問題はすべて解決した後、最後にシステムにブロックを追加します.ドメイン間問題がまた来た.
ブラウザから送信されたプローブ方法で、ターゲットホストがドメインを超えて許可されているかどうかをプローブする必要があります.その結果、プローブ時にブロックされ、送信された偵察兵の音信が全くなく、ブラウザはターゲットホストに要求を送信せず、
options
のドメイン間エラーを発行します. // options
if ("OPTIONS".toLowerCase().equals(httpServletRequest.getMethod().toLowerCase())){
System.out.println(httpServletRequest.getMethod().toLowerCase());
return true ;
}
後記
数年後、私が一番多く言ったのは: