Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Paginator(backbone.js)时无法检测用户是否登录_Php_Javascript_Jquery_Backbone.js_Laravel - Fatal编程技术网

Php 使用Paginator(backbone.js)时无法检测用户是否登录

Php 使用Paginator(backbone.js)时无法检测用户是否登录,php,javascript,jquery,backbone.js,laravel,Php,Javascript,Jquery,Backbone.js,Laravel,我正在使用插件。它通过为分页中涉及的模型定义自己的集合,很好地实现了无限滚动分页。如果用户登录,PHP后端将返回带有附加属性is\u like的主干对象,以使该项具有不同的CSS样式 问题:当Paginator插件(具有自己的集合主干.Paginator.requestPager)在后端执行GETfetch请求时,后端无法确定用户是否登录!但是,当我使用通常的主干.Collection时,后端能够确定用户是否登录!它也适用于$.post()。这让我觉得问题在于插件的Backbone.Pagina

我正在使用插件。它通过为分页中涉及的模型定义自己的集合,很好地实现了无限滚动分页。如果用户登录,PHP后端将返回带有附加属性
is\u like
的主干对象,以使该项具有不同的CSS样式

问题:当Paginator插件(具有自己的集合
主干.Paginator.requestPager
)在后端执行GET
fetch
请求时,后端无法确定用户是否登录!但是,当我使用通常的
主干.Collection
时,后端能够确定用户是否登录!它也适用于
$.post()
。这让我觉得问题在于插件的
Backbone.Paginator.requestPager

我正在使用Chrome开发者工具的网络部分检查结果。如果身份验证检查有效,则可以看到
api/test
,以返回有关用户的一些数据。如果无法确定登录状态,则返回null

更新:
Backbone.Paginator.requestPager
集合发送的
GET
请求在
Backbone.collection发送的
GET
请求的标题中不包含
Cookie
信息。这可能是问题所在吗?如何强制
Backbone.Paginator.requestPager
不从标题中删除cookie数据

这里发生了什么?我如何解决这个问题(不重写自己的分页代码)

使用PHP后端(Laravel框架)进行身份验证测试

典型主干收集[有效]

SimilarUserCollection = Backbone.Collection.extend({
    model: User,
    url: 'api/test'
});
PhotoCollection = Backbone.Paginator.requestPager.extend({
    model: Photo,

    paginator_core: {
            type: 'GET',
            dataType: 'json',
            url: 'api/test'
        },

    paginator_ui: {
        firstPage: 1,
        currentPage: 1,
        perPage: 7,
        totalPages: 10
    },

    server_api: {

        'page': function() { return this.currentPage; }
    },

    parse: function (response) {

        return response;
    }

});
分页者的收藏[不起作用]

SimilarUserCollection = Backbone.Collection.extend({
    model: User,
    url: 'api/test'
});
PhotoCollection = Backbone.Paginator.requestPager.extend({
    model: Photo,

    paginator_core: {
            type: 'GET',
            dataType: 'json',
            url: 'api/test'
        },

    paginator_ui: {
        firstPage: 1,
        currentPage: 1,
        perPage: 7,
        totalPages: 10
    },

    server_api: {

        'page': function() { return this.currentPage; }
    },

    parse: function (response) {

        return response;
    }

});

这是一个跨域问题:

一个请求是发送到此URL:

另一方面:


对于浏览器来说,www.mysite.com是完全不同的,因此如果Cookie是在www.mysite.com上生成的,那么对mysite.com的请求将不包含Cookie。确保两个请求都进入同一个域,并且不会出现Cookie问题。

是否根据发送的Cookie确定登录?在身份验证头上?怎么用?您的第一个集合(有效)使用您的
用户
模型,但节集合(无效)使用您的
照片
模型两个集合都在同一URL上执行
fetch()
,检查用户是否登录,因此我想
模型
无关紧要,但我可能错了。PHP框架使用数据库会话,所以我想这意味着存储一个cookie,其会话数据存储在数据库中。我使用PHP框架的内置函数来获取用户是否登录。尝试将
PhotoCollection
模型从
Photo
更改为
user
,当你在
User
上调用它时,看看你发送的标题,当你在
Photo
上调用它时,看看你发送的标题。您肯定这两个URL每次都是相同的吗?除了
GET
变量(即
http://www.mysite.com/api/test?page=1
http://mysite.com/api/test
。我更新了这个问题,似乎
Backbone.Paginator.requestPager
没有在其请求头中发送cookie信息,而是
Backbone.Collection
正在发送!后端通过查看cookies然后检查其
会话
数据库表来确定用户是否登录。