【问题标题】:Ajax not working with this .htaccessAjax 不适用于此 .htaccess
【发布时间】:2012-11-21 13:24:51
【问题描述】:

我正在使用 PHP 和 MVC 开发 CMS。我有以下 htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

所以我有一个调度员去不同的意见取决于网址上的永久链接。

我的问题是,我尝试使用 ajax 登录,但又无法使用。

.htaccess 中是否有任何异常来完成这项工作,或者我只能在调度程序上放置更多异常以在 ajax 中加载 .php?

谁能帮帮我?

提前致谢。

编辑:

$.post
(
    "../ajax/login.php",
    {
    u:Base64.encode(user),
    p:Base64.encode(password),
},
    function(data)
    {

    },
    "json"
);

我试过了:

"../ajax/login.php"

PATH+VIEW+THEME+"/ajax/login.php"

我的文件夹结构是:

view
    themes
        standar
            ajax
                login.php
            js
                ajaxInteractions.js
            index.phtml

【问题讨论】:

  • 我想我们得看看你的 javascript。
  • 显示您的 ajax 调用,但最有可能的是,您需要添加 / 或更具体地检查您的 ajax 调用路径。
  • 同意@DainisAbols ...另外,最好将ajax URL 直接输入到新的浏览器窗口中。然后,您可以检查发生了什么。小心相对 URL - 浏览器从父页面的 URL 组成它们(这是虚拟的,可以包含将放在 JS 前面的文件夹)。这可能会破坏功能
  • 我希望您没有对它们进行 Base64 编码,因为您认为它是安全的...密码只能通过加密通道 (https) 发送。
  • 是一个内部的工作CMS,我只使用Base64通过post进行交流。

标签: php .htaccess jquery url-rewriting permalinks


【解决方案1】:

如 cmets 中所述,您需要检查您的路径或只使用您的绝对路径,如下所示:

$.post
(
    "/view/themes/standar/ajax/login.php",
    {
    u:Base64.encode(user),
    p:Base64.encode(password),
},
    function(data)
    {

    },
    "json"
);

还有一件事;像这样展开代码并不总是最佳实践(这对 PHP 和纯 JS 调用很有用)。对于这些类型的调用,尽量保持集中:

$.post( "/view/themes/standar/ajax/login.php", {
    u:Base64.encode(user),
    p:Base64.encode(password),
}, function(data) {
    /** do your stuff **/
}, "json" );

【讨论】:

  • 问题出在 htaccess 中,使用 .htaccess 指向的所有 url 或 url 指向的路径都转到域上根目录上的 index.php。
  • 不是,如果你直接指向某个文件。如果没有找到其他有效 url,它将全部重定向到 index.php。
  • 谢谢,它的作品。我正在测试你的代码,我的 folfer 被称为标准,但现在可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 2014-03-19
  • 2015-11-10
  • 2014-09-30
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多