Javascript Kohana/JQuery身份验证访问问题
我有一个使用Kohana ORM Auth的网站。我有一个url,当通过ajax调用时,它将检查用户是否登录,并返回与用户角色对应的json_编码数据。当我在普通浏览器窗口中尝试此url时,它工作正常。它返回了正确的值,但是当通过AJAX调用尝试时,Auth::instance->logged\u in返回FALSE,即使我确信用户已登录。 我遵循以下链接中列出的说明 但它并没有解决这个问题 到目前为止,我所做的是,我在基本控制器以及编写请求操作的文件中添加了以下行Javascript Kohana/JQuery身份验证访问问题,javascript,jquery,ajax,kohana-3.3,kohana-auth,Javascript,Jquery,Ajax,Kohana 3.3,Kohana Auth,我有一个使用Kohana ORM Auth的网站。我有一个url,当通过ajax调用时,它将检查用户是否登录,并返回与用户角色对应的json_编码数据。当我在普通浏览器窗口中尝试此url时,它工作正常。它返回了正确的值,但是当通过AJAX调用尝试时,Auth::instance->logged\u in返回FALSE,即使我确信用户已登录。 我遵循以下链接中列出的说明 但它并没有解决这个问题 到目前为止,我所做的是,我在基本控制器以及编写请求操作的文件中添加了以下行 header('Access
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header('Access-Control-Allow-Credentials: TRUE');
在发送实际请求之前,在ajax中编写以下代码
beforeSend: function(xhr){
xhr.withCredentials = true;
},
编辑-------
我尝试使用下面的方法,但它给了我一个COR问题
$.ajax({
type: 'GET',
url: "http://www.domain.com/web/joblist",
xhrFields: {
withCredentials: true
},
dataType: "json",
data:{
"tab":currentTab,
"page":currentPage,
"filter":filterStr
},
success: function(json){ ...
},
error: function(e) {
...
}
});
使用数据类型:jsonp
希望这能解决您的问题。是否使用浏览器请求AJAX调用?而不是卷发请求。如果是,请检查AJAX调用是否成功,以及它返回的内容,例如使用firefox firebug控制台选项卡 在我看来,您不必担心凭据,因为您提到它在同一个域上。因此,检查用户是否登录是由AJAX端点上的php控制器完成的 因此,通过一个普通的AJAX调用,您应该能够在检查是否有人登录的地方调用您的控制器。例如
// set ajax setup
$.ajaxSetup({
type : "GET",
statusCode : {
404 : function() {
alert('Page not found.');
},
500 : function() {
alert('Server error.');
}
}
})
这有帮助吗,还是我完全没有领会你的意思?问题是,www.没有添加到url的开头,auth拒绝了来自url的服务请求,而url中没有www.的前缀。尝试替换http://www.domain.com/web/joblist 到/web/joblistDestination URL同一域或不同??目标URL相同。
$.ajax({
dataType : "json",
url : 'some/uri/',
data : {
name : name
},
success : function(response) {
// do something with the response
}
});