【コンピュータネットワーク】Ajax通信プロセスにCookieを持ち込むにはどうすればいいですか?
2553 ワード
Ajax
1.ajaxとコード実装を紹介する
1.1基本概念
JavaScriptとXML(Asynchronous JavaScript And XML).簡単に言えば、XMLHttpRequestオブジェクトを使用してサーバと通信します.JSON、XML、HTML、textテキストなどのフォーマットでデータを送信および受信できます.AJAXが最も魅力的なのは、その「非同期」特性です.つまり、ページを再リフレッシュせずにサーバと通信したり、データを交換したり、ページを更新したりすることができます.
Ajax | MDN
1.2簡単なAjaxを作成する XMLHttpRequestオブジェクトを作成する バインドonreadystatechangeイベント サーバに要求 を送信する.
完全な例
1.3 httpRequest.readyStateの値(熟記)0(未初期化)or(要求未初期化) 1(ロード中)or(サーバリンク確立済み) 2(ロード成功)or(リクエスト受諾) 3(インタラクション)or(処理要求) 4(完了)or(要求が完了し、応答が準備されている) 1.4サービス側から返されるデータへのアクセス httpRequest.responseText サーバは、 をテキスト文字で返す.
httpRequest.responseXML はXMLDocumentオブジェクトとして返され、その後JavaScriptを使用して を処理することができる.
1.5 GET注意事項応答ヘッダ 1.6 POST要求
[!NOTE]POSTリクエストは、
1.7 Ajaxがクッキーをどのように携帯するか(面接加点) ajaxは自動的に同源のcookieを持ってきて、異源のcookie を持っていませんは、フロントエンドがwithCredentialsをtrueに設定し、バックエンドがHeaderを設定することでajaxに異なるソースのクッキーを自動的に持ち込むことができますが、この属性は同じソース要求に何の影響もありません.自動的に無視されます.
withCredentials | MDN
1.ajaxとコード実装を紹介する
1.1基本概念
JavaScriptとXML(Asynchronous JavaScript And XML).簡単に言えば、XMLHttpRequestオブジェクトを使用してサーバと通信します.JSON、XML、HTML、textテキストなどのフォーマットでデータを送信および受信できます.AJAXが最も魅力的なのは、その「非同期」特性です.つまり、ページを再リフレッシュせずにサーバと通信したり、データを交換したり、ページを更新したりすることができます.
Ajax | MDN
1.2簡単なAjaxを作成する
if (window.XMLHttpRequest) { // Mozilla, Safari, IE7+ ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 6 and older
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
httpRequest.onreadystatechange = function(){
// Process the server response here.
};
httpRequest.open('GET', 'http://www.example.org/some.file', true);
httpRequest.send();
完全な例
function ajax(url, cb) {
let xhr;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
cb(xhr.responseText);
}
}
xhr.open('GET', url, true);
xhr.send();
}
1.3 httpRequest.readyStateの値(熟記)
1.5 GET注意事項
Cache-Control: no-cache
を設定しないと、ブラウザは応答をキャッシュし、要求を再送信することはできません.タイムスタンプや乱数など、常に異なるGETパラメータを追加することもできます(詳細はbypassing the cacheを参照).[!NOTE]POSTリクエストは、
RequestHeader
がバックグラウンドにコンテンツを伝える符号化方式およびsendメソッドに対応する値を入力するように設定する必要があるxhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type": "application/x-www-form-urlencoded");
xhr.send("key1=value1&key2=value2");
1.7 Ajaxがクッキーをどのように携帯するか(面接加点)
withCredentials | MDN
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/', true);
xhr.withCredentials = true;
xhr.send(null);