2017-07-21 58 views
8

我從來都是jQuery用戶。但現在我正在構建我的第一個使用JWT進行身份驗證的API。這就是說,我在網上找到的大多數教程都是通過身份驗證頭使用這個API來使用Axios來發出這些請求。使用Axios vs 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); 
    } 
}); 

發送請求

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

閱讀Axios公司的特點後,最後一個是:爲防範XSRF客戶端支持。 jQuery ajax不支持嗎?我需要做額外的事情來做出這種保護嗎?還有什麼值得使用另一個庫,比如Axios而不是jQuery?

回答

1

我在jQuery $.ajax文檔中沒有看到任何明確的支持。這就是說,這是你可以用beforeSend設置做的事情。在beforeSend中,您將修改jqHXR以包含您的XSRF信息。

@charlietfl提到你也可以做到這一點在全球ajaxSend()因此被應用於$.ajax()

所有情況下這是什麼axios是這樣做的:

// `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你項目,您可以自己處理XSRF,然後使用$.ajax()

「還有什麼值得使用另一個庫,比如Axios而不是jQuery?」

我會說絕對。專用於處理http的庫將應用程序框架或演示庫中的流程分離出來。

+0

也可以在全局'ajaxSend()'中做到這一點,所以它反映了'$ .ajax' – charlietfl

相關問題