2017-07-21 15 views
8

私は永遠からjQueryユーザーでした。しかし、今はJWTを認証に使用する最初のAPIを構築しています。これは、認証ヘッダーでAxiosを使用してこれらのリクエストを行うこのAPIを消費するためにオンラインで見つけたほとんどのチュートリアルです。AxiosとjQueryをHTTPリクエストで使用する際の違いは何ですか?

私はすでにプロジェクトでjQueryを使用していますので、単純なjQueryのajaxコールを作ってみたいと思いますが、使用するのに難点があるかどうかはわかりません。

これは私のjQueryのコードのようになります。

$.ajax({ 
    url: "http://localhost:8080/login", 
    type: 'POST', 
    data: formData, 
    error : function(err) { 
    console.log('Error!', err) 
    }, 
    success: function(data) { 
    console.log('Success!') 
    localStorage.setItem('token', data.id_token); 
    } 
}); 

Axiosの機能を読んだ後要求

$.ajax({ 
    url: "http://localhost:8080/login", 
    type: 'GET', 
    // Fetch the stored token from localStorage and set in the header 
    headers: {"Authorization": localStorage.getItem('token')} 
}); 

を送信し、最後のものがある:XSRFから保護するためクライアント側のサポート。 jQuery ajaxはそれをサポートしていませんか?私はこの保護をするために余分なことをしなくてはなりませんか? jQueryの代わりにAxiosのような別のライブラリを使う価値があるものはありますか?

答えて

1

jQuery $.ajaxのドキュメントで明示的なサポートはありません。つまり、beforeSendの設定でできることです。 beforeSendでは、jqHXRを変更してXSRF情報を含めるようにします。

// `xsrfCookieName` is the name of the cookie to use as a value for xsrf token 
    xsrfCookieName: 'XSRF-TOKEN', // default 

    // `xsrfHeaderName` is the name of the http header that carries the xsrf token value 
    xsrfHeaderName: 'X-XSRF-TOKEN', // default 

すでにあなたの中にjQueryを使用している場合:

@charlietflはあなたにもグローバルajaxSend()でこれを行うので、これがaxiosがやっていることである$.ajax()

のすべてのインスタンスに適用されることができます言及しましたXSRFを自分で処理してから、$.ajax()を使用してください。

「jQueryの代わりにAxiosのような別のライブラリを使う価値はありますか?」

私は間違いなくそう言います。 httpを扱う専用のライブラリは、アプリケーションフレームワークまたはプレゼンテーションライブラリからプロセスを切り離します。

+0

グローバルな 'ajaxSend()'でも実行できるので、 '$ .ajax'のすべての用途に反映されます。 – charlietfl

関連する問題