web-dev-qa-db-ja.com

AxiosはSet-Cookieをサポートしていますか? Axios HTTPリクエストを介して認証することは可能ですか?

Axios HTTPリクエストコールを使用して、エクスプレスAPIバックエンドを認証しようとしています。応答ヘッダーに「Set-Cookie」が表示されましたが、Cookieが設定されていませんでした。 Axios HTTP呼び出しでCookieを設定することはできますか?

Access-Control-Allow-Origin:* 
 Connection:keep-alive 
 Content-Length:355 
 Content-Type:application/json; charset = utf-8 [。 ..;最大年齢= 3.6;パス= /; Expires = Fri、28 Sep 2018 05:59:04 GMT; HttpOnly 
 X-Powered-By:Express 
8
Mandakh

これを試してみてください!

axios.get('your_url', {withCredentials: true}); //for GET
axios.post('your_url', data, {withCredentials: true}); //for POST
axios.put('your_url', data, {withCredentials: true}); //for PUT
axios.delete('your_url', data, {withCredentials: true}); //for Delete

これに関する詳細については、axiosのドキュメントをご覧ください。

「withCredentialsは、資格情報を使用してクロスサイトアクセス制御要求を行うかどうかを示します」- https://github.com/axios/axios

WithCredentialsの詳細:

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

10
Aaron

はい、Axiosでクッキーを設定できます。 Cookieはheadersオブジェクトに渡す必要があります。 cookieはget/post/put/delete/etcで送信できます。リクエスト:Aaron:が示唆するとおり

axios.get('URL', {
  withCredentials: true
}); 
axios.post('URL', data, {
withCredentials: true
}); 
axios.put('URL', data, {
withCredentials: true
});
axios.delete('URL', data, {
withCredentials: true
});

または、これを試すこともできます:

axios.get(url, {
            headers: {
                Cookie: "cookie1=value; cookie2=value; cookie3=value;"
            }
        }).then(response => {
              console.log(response);
});
2
Amuk Saxena