2015-06-20 74 views
1
"fc_vid=visitor1089537543049; _gat=1; Email Id=; Password=; API={"access_token":"fca10765-e1b0-42bf-bc11-47d4e436533b","token_type":"bearer","refresh_token":"969b3993-983c-4308-8542-bc0b0cd861ac","expires_in":429373,"scope":"read write"}; pnctest=1; fc_g=%7B%22session_geo%22%3A%22%7B%5C%22locale%5C%22%3A%7B%5C%22country%5C%22%3A%5C%22us%5C%22%2C%5C%22lang%5C%22%3A%5C%22en%5C%22%7D%2C%5C%22current_session%5C%22%3A%7B%5C%22url%5C%22%3A%5C%22http%3A%2F%2Flocalhost%3A5567%2FHome%2FIndex%5C%22%7D%2C%5C%22browser%5C%22%3A%7B%5C%22browser%5C%22%3A%5C%22Chrome%5C%22%2C%5C%22version%5C%22%3A43%2C%5C%22os%5C%22%3A%5C%22Windows%5C%22%7D%2C%5C%22device%5C%22%3A%7B%5C%22is_tablet%5C%22%3Afalse%2C%5C%22is_phone%5C%22%3Afalse%2C%5C%22is_mobile%5C%22%3Afalse%7D%7D%22%7D; _ga=GA1.1.1692099365.1433096280" 

我想刪除API cookie並將其重置爲新對象,但是當我這樣做時,它爲我添加了另一個API cookie。如何刪除和重置JavaScript中的cookie?

下面是我的代碼我使用cookies.js從這個link

var dataPromise = get_api_token_refresh_token(refresh_token).done(handleData).fail(failHandler); 
    dataPromise.success(function (api_token) { 
    var something = docCookies.removeItem('API'); 
     console.log(something); 
     docCookies.setItem("API", JSON.stringify(api_token)); 
    }); 

什麼是在我的情況發生:

"API=%7B%22access_token%22%3A%22f7b87fc2-f2d5-43e8-a6d2-cc4a89da7a50%22%2C%22token_type%22%3A%22bearer%22%2C%22refresh_token%22%3A%223630934c-93c3-4497-abfb-9022428fce4c%22%2C%22expires_in%22%3A431999%2C%22scope%22%3A%22read%20write%22%7D; fc_vid=visitor1089537543049; _gat=1; Email Id=; Password=; API={"access_token":"fca10765-e1b0-42bf-bc11-47d4e436533b","token_type":"bearer","refresh_token":"969b3993-983c-4308-8542-bc0b0cd861ac","expires_in":429373,"scope":"read write"}; pnctest=1; fc_g=%7B%22session_geo%22%3A%22%7B%5C%22locale%5C%22%3A%7B%5C%22country%5C%22%3A%5C%22us%5C%22%2C%5C%22lang%5C%22%3A%5C%22en%5C%22%7D%2C%5C%22current_session%5C%22%3A%7B%5C%22url%5C%22%3A%5C%22http%3A%2F%2Flocalhost%3A5567%2FHome%2FIndex%5C%22%7D%2C%5C%22browser%5C%22%3A%7B%5C%22browser%5C%22%3A%5C%22Chrome%5C%22%2C%5C%22version%5C%22%3A43%2C%5C%22os%5C%22%3A%5C%22Windows%5C%22%7D%2C%5C%22device%5C%22%3A%7B%5C%22is_tablet%5C%22%3Afalse%2C%5C%22is_phone%5C%22%3Afalse%2C%5C%22is_mobile%5C%22%3Afalse%7D%7D%22%7D; _ga=GA1.1.1692099365.1433096280" 

注:餅乾被在asp.net設置mvc代碼

string token_string = ""; 
       if (loginResult.User != null) 
       { 
        //make a call to the REST api authentication method and get accesstokens 
        token_string = OAuthHelper.getTokenFromAPIServer(api_auth_username, api_auth_password); 
        if (collection["Check"] != null) 
        { 
         check = collection["Check"]; 

         if (check == "on") 
         { 
          FormsAuthentication.SetAuthCookie(loginResult.User.Name, true); 
          Response.Cookies[Constants.Cookies.USERNAME].Value = loginResult.User.Email; 
          Response.Cookies[Constants.Cookies.PWD].Value = savePassword;//loginResult.User.Password; 
          Response.Cookies[Constants.Cookies.USERNAME].Expires = DateTime.Now.AddDays(10); 
          Response.Cookies[Constants.Cookies.PWD].Expires = DateTime.Now.AddDays(10); 


         } 
        } 
        else 
        { 
         FormsAuthentication.SetAuthCookie(loginResult.User.Name, false); 
         Response.Cookies[Constants.Cookies.USERNAME].Value = string.Empty; 
         Response.Cookies[Constants.Cookies.PWD].Value = string.Empty; 
        } 
        Response.Cookies[Constants.Cookies.API].Value = token_string; 
+0

可以顯示更多的代碼? – jcuenod

+0

檢查'docCookies.removeItem(「API」);'正在返回什麼。它通常會返回'true',如果它成功刪除了cookie,否則'false' – nalinc

+0

仍然需要更多的代碼,因爲我部分想要了解如何將它設置爲開頭。另外,'var api = api_token;'是完全多餘的。 – jcuenod

回答

1

您可以使用jquery.cookie插件。這是非常容易使用:

刪除Cookie:

// Returns true when cookie was successfully deleted, otherwise false 
$.removeCookie('name'); // => true 
$.removeCookie('nothing'); // => false 

// Need to use the same attributes (path, domain) as what the cookie was written with 
$.cookie('name', 'value', { path: '/' }); 
// This won't work! 
$.removeCookie('name'); // => false 
// This will work! 
$.removeCookie('name', { path: '/' }); // => true 

創建會話cookie:

$.cookie('name', 'value'); 

創建過期餅乾,從那以後7天:

$.cookie('name', 'value', { expires: 7 }); 

創建過期餅乾,在整個網站上有效:

$.cookie('name', 'value', { expires: 7, path: '/' }); 

讀取Cookie:

$.cookie('name'); // => "value" 
$.cookie('nothing'); // => undefined 

讀取所有可用的cookie:

$.cookie(); // => { "name": "value" } 
+0

不工作............... – vini

+0

@vini沒有辦法..檢查更多.. –

+0

我已編輯我的問題看看 – vini