[英]Sinatra not recognising javascript for session
我正在尝试使用jQuery登录Sinatra应用程序,但是出于某种原因,Sinatra似乎根本无法识别它,这是我的代码,用于查看用户是否已登录:
Sinatra应用程序:
get '/logged_in' do
if session[:logged_in] == true
status 200
"OK"
else
status 200
"False"
end
end
当我在浏览器中浏览到/logged_in
时,我看到OK
,但是当我执行以下Javascript时,将False
打印到控制台-对我来说似乎很奇怪。
var r = $.ajax({
type: "GET",
url: "http://xxx-xxx.com/logged_in"
});
r.success(function(msg) {
console.log(msg);
});
任何见识将不胜感激!
如果您可以提供更多详细信息,那将是很好的。 (浏览器,按时间顺序排列的请求日志(包括HTTP状态代码),甚至是Wireshark的转储。)但是,这是我的猜测:
var r = $.ajax({
cache: false,
type: "GET",
url: "/logged_in",
success: function(msg) {
console.log(msg);
}
});
一些浏览器会主动缓存AJAX请求,尤其是GET请求。 因此,您可能要尝试使用cache: false
。 后来添加成功函数对我来说也很奇怪,我从未在任何代码中看到过。
编辑:服务器在同一域上回答AJAX请求吗? (该域必须与您的浏览器测试中的域相同。)通常不必在URL中指定域,因此我在此处的代码中将其删除。 所以,毕竟这可能是一个问题,由于同源策略 。
我认为这是jQuery问题,而不是Sinatra问题。 检查是否正在发送cookie以获取ajax请求。 无法发送Cookie的原因有很多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.