我使用passportJS来处理服务器后端的登录和持久会话。
当从服务器前端传递请求时,会话正常工作(我没有创建的网页,并且没有足够的专业知识可以搞乱),但在使用请求(https://www.npmjs.com/package/request)手动发送时对服务器的请求,会话根本不起作用 - 不调用deserializeUser,req.user未定义。
这是前端的相关代码。
$.ajax({
type:"POST",
url: GE.SERVER_URL + '/publish',
data: {
name: $( '#new_publication_name' ).val(),
code: column.editor.getValue(),
language: column.mode,
permissions: $( '#new_publication_permissions' ).prop( 'checked' ),
tags: $( '#new_publication_tags' ).val().split(','),
notes: $( '#new_publication_notes' ).val(),
instrument: false,
username: Gibber.Environment.Account.nick
},
dataType:'json'
})
.done( function ( data ) {
if( data.error ) {
GE.Message.post( 'There was an error writing to Gibber\'s database. Error: ' + data.error )
}else{
GE.Message.post( 'Your publication has been saved to: ' + GE.SERVER_URL + '/?path=' + data._id )
}
这是我正在使用的代码。
request.post({url:'http://127.0.0.1:8080/publish',form:{filename:"steinfile", code:"john doe", language:"english",tags:["testfile"],notes:"thesearenotes"}}, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
else
{
console.log(error);
}
})
谢谢!
答案 0 :(得分:0)
您不会随着request.post
一起发送Cookie。
会话正常工作需要它们。