簡體   English   中英

即使出現標題也無法在瀏覽器中設置Cookies

[英]Can't set Cookies in browser even though header is present

我當時正在努力向我的項目中添加cookie, 這里有完整的源代碼,但是遇到了無法正確設置cookie的問題。 我做了一個新的api路由,它只創建一個cookie並將一個對象發送給客戶端。

服務器/路由/todo.routes.js

router.get('/todos', (req, res) => {
    res.cookie('mycookie', 'a_value')
    return res.send([{id:'1',isCompleted:false,text:'something'}])
})

如果我直接調用此api路由,則瀏覽器將呈現該對象,並設置cookie。 問題是,當我從渲染頁面通過AJAX調用此api時,我仍然得到相同的響應,但是未設置cookie。 注意:我導出路由器並執行app.use('/ api',exported_object_here),因此URL為/ api / todos。

共享/動作/todo.actions.js

export const getTodos = () => {
    return (dispatch) => {
        return fetch('/api/todos')
            .then(response => response.json())
            .then(todo => dispatch(_receiveTodos(todo)))
            .catch(err => dispatch(_errorHandler(err)));
    }
};

我不知道為什么瀏覽器在這種情況下會有所不同,特別是在如此簡單的情況下。 你們都有什么線索可能導致這種情況嗎?

您需要在XHR請求上設置withCredentialshttps://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM