给出了我迄今为止尝试过的一些代码。
请求来源 - " abc.com",Request-url - " login.abc.com/login" (后方法)
function setCookie(req, res)
{
//Some code goes here.
//Code to set cookie
res.cookie('test',"some value"); //This should set cookie for login.abc.com, which never happened
}
还尝试设置域名
function setCookie(req, res)
{
//Some code goes here.
//Code to set cookie
res.cookie('test',"some value",{domain:'.abc.com'},{'path' : '/'});//This should set cookie for .abc.com
}
以下代码按预期工作
请求来源 - " abc.com",Request-url - " abc.com/login" (后方法)
function setCookie(req, res)
{
//Some code goes here.
//Code to set cookie
res.cookie('test',"some value",{domain:'.abc.com'},{'path' : '/'});//This set the cookie for .abc.com successfully
}
有人可以帮我理解为什么它不是在第一种情况下设置cookie而是在第二种情况下设置cookie吗?
注意我在本地尝试此操作。
答案 0 :(得分:0)
所以最后我得到了我的问题的解决方案,并能够实现我想要的。写下这个答案,以便其他人可以在将来获得利益。
客户端的变化: -
#include <string>
#include <vector>
using namespace std;
#define MAX_BUFFER 30
int main(int argc, char **argv) {
vector<string> myVec = { "hey","asd","haha" };
vector<string> clone;
for (int i = myVec.size(); i--;) {
myVec[i].reserve(myVec[i].size() + MAX_BUFFER);
clone.push_back(myVec[i]);
}
return 0;
}
现在服务器端发生了变化: -
$.ajax({type: "post",
data: {},
timeout: 30000,
dataType:"json",
xhrFields : {withCredentials : true} //Need to add this along with the request.
})
请参阅cors-doc以了解有关如何在服务器端使用 var cors = require('cors');
app.post('/testRoute',
cors({credentials:true,
origin:'http://example.com'}), //Origin should be the url of the page, from where we are sending request.
function(req, res){
res.cookie('test',"some value",{'path' : '/'})
})
的更多信息。
注意: - 如果我们在ajax请求中指定cors
,则无法将Access-Control-Allow-Origin
值用作*
。