gpt4 book ai didi

php - 使用分页器 (backbone.js) 时无法检测用户是否已登录

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:12 25 4
gpt4 key购买 nike

我正在使用 Backbone.js Paginator插入。它通过为分页中涉及的模型定义自己的 Collection 来很好地进行无限滚动分页。如果用户已登录,PHP 后端将返回具有附加属性 is_liked 的 Backbone 对象,以使该项目具有不同的 CSS 样式。

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

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

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

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

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

Route::any('api/test', function() {
// This will return some data of the user if logged in
return json_encode(Auth::user());
});

典型 Backbone 集合 [作品]

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

Paginator 的集合 [不起作用]

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: http://www.mysite.com/api/test?page=1

另一个是: http://mysite.com/api/test

对于浏览器来说,www.mysite.com 是完全不同的,因此如果 Cookie 是在 www.mysite.com 上生成的,那么对 mysite.com 的请求将不会包含它。确保两个请求都发送到同一个域,这样您就不会遇到 Cookie 问题。

关于php - 使用分页器 (backbone.js) 时无法检测用户是否已登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11687190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com