我在rails控制器中创建了一个方法,它使用会话变量返回json:
def get_facebook_code
render json: { code: session[:facebook_auth_code] }
end
当我在浏览器http://localhost:3000/credentials/facebook/code
中粘贴链接时,它可以正常工作 - 会话变量返回
当我从Postman运行请求或从第三方应用程序的js代码运行时,会话变量为null:
$.ajax({
type: "GET",
url: "http://localhost:3000/credentials/facebook/code",
success: function(msg) {
console.log(msg);
},
});
我在credentials/*
gem
rack-cors
路径请求
resource '/credentials/*', headers: :any, methods: [:get]
答案 0 :(得分:2)
因为默认情况下rails会在cookie中存储会话。
不知何故,您在浏览器会话中添加了密钥“facebook_auth_code”。邮递员/第三方应用程序请求不能使用相同的密钥,因为cookie不同。