关于AJAX请求的CakePHP 403

前端之家收集整理的这篇文章主要介绍了关于AJAX请求的CakePHP 403前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 AJAX在我的网站上自动填写搜索框.我用firebug来测试我的应用程序.当我尝试搜索某些内容时,Firebug告诉我AJAX请求返回403禁止错误.但是,当我复制AJAX请求中的EXACT URL时,它会返回正确的数据.

编辑:
我认为这必须是JavaScript方面的东西.与普通请求相比,AJAX请求是否可以省略任何标头?

这是$_SERVER变量(我在两个请求中删除了相同的参数)对AJAX请求失败(1)vs输入URL并且它有效(2):

(1)

2011-04-02 13:43:07 Debug: Array
(
    [HTTP_ACCEPT] => */*
    [HTTP_COOKIE] => CAKEPHP=0f9d8dc4cd49e5ca0f1a25dbd6635bac;
    [HTTP_X_REQUESTED_WITH] => XMLHttpRequest
    [REDIRECT_REDIRECT_UNIQUE_ID] => TZdgK654EmIAAEjknsMAAAFG
    [REDIRECT_UNIQUE_ID] => TZdgK654EmIAAEjknsMAAAFG
    [REMOTE_PORT] => 60252

    [UNIQUE_ID] => TZdgK654EmIAAEjknsMAAAFG
    [REQUEST_TIME] => 1301766187
)

(2)

2011-04-02 13:44:02 Debug: Array
(
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_COOKIE] => CAKEPHP=d8b392a5c3ee8dd948cee656240fd5ea;
    [REDIRECT_REDIRECT_UNIQUE_ID] => TZdgYq54EmIAAF7zt6wAAAJJ
    [REDIRECT_UNIQUE_ID] => TZdgYq54EmIAAF7zt6wAAAJJ
    [REMOTE_PORT] => 60281

    [UNIQUE_ID] => TZdgYq54EmIAAF7zt6wAAAJJ
    [REQUEST_TIME] => 1301766242
)
我想我找到了解决方案.我将安全级别设置为中等以解决问题.我在config文件夹中找到了这一行.中等安全级别是否会对生产造成任何问题?
/**
 * The level of CakePHP security. The session timeout time defined
 * in 'Session.timeout' is multiplied according to the settings here.
 * Valid values:
 *
 * 'high'   Session timeout in 'Session.timeout' x 10
 * 'medium' Session timeout in 'Session.timeout' x 100
 * 'low'    Session timeout in 'Session.timeout' x 300
 *
 * CakePHP session IDs are also regenerated between requests if
 * 'Security.level' is set to 'high'.
 */
    Configure::write('Security.level','medium');

编辑:这绝对是解决方案.这是发生的事情:

当安全级别设置为高时,将在每次请求时生成新的会话ID.

这意味着当我发出ajax请求时,会生成一个新的会话ID.

如果您保持在同一页面上,JavaScript会发出请求,生成新的session_id,并且不会记录新的session_id.

所有后续的ajax请求都使用旧的session_id,该session_id被声明为无效,并返回空会话.

原文链接:https://www.f2er.com/ajax/160043.html

猜你在找的Ajax相关文章