javascript - .htaccess 页面重定向对 AJAX 响应有影响

标签 javascript php jquery ajax .htaccess

我正在开发类似于 Facebook 的社交网站。帖子显示在主页上。他们可以被喜欢和评论。 如果帖子被点赞,LIKE TABLE 会通过 AJAX 更新,并使其点赞计数加一。 likes.php文件更新了 LIKE TABLE 并返回增量值,<span class = 'likeCount'>. $likeCount .</span> ,并将其附加到点赞按钮。

这在 home.php 中工作正常但不在user.php这是用户个人资料页面。 user.php获取仅与特定用户相关的帖子。你得到 PHP 错误 每当您尝试对 user.php 中的帖子点赞或发表评论时页。当我 alert( msg );它显示了请求页面的完整 HTML 代码,user.php某些变量未定义的 PHP 错误。网址其实是这样的 http://localhost/mysite/user.php?userID=yax但它被 .htaccess 重定向和重写为 http://localhost/mysite/user/yax .我猜这是导致问题的原因,因为同一个 AJAX 在 home.php 中运行良好。

AJAX代码:

$(".mlike").click(function () {
    $(".murconform").submit(function(e){
        return false;
    });
    var $this=$(this);
    var post_id = $(this).val();
    var user_id = $(".user_id").text();
    alert('Post: '+post_id +' User: '+user_id);
    var request = $.ajax({
      url: "likes.php",
      type: "POST",
      data: { post : post_id , user : user_id },
      dataType: "html"
    });
    request.done(function( msg ) {    
        $this.prev('.likecount').html( msg ); 
    });
});

.htaccess 代码:

RewriteEngine  on
RewriteBase /mysite/user/

RewriteCond %{THE_REQUEST} /user\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ user.php?user=$1 [L]

这让我过去三天的工作非常沮丧和停顿。任何帮助将不胜感激。谢谢。

最佳答案

由于您的 AJAX 调用正在发出 POST 请求,您可以添加一条规则以跳过 POST 请求以进行重写:

RewriteEngine  on
RewriteBase /mysite/

RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]

RewriteCond %{THE_REQUEST} /user\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ user.php?user=$1 [L,QSA]

关于javascript - .htaccess 页面重定向对 AJAX 响应有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21214165/

相关文章:

javascript - 必须在 HTML 中手动定义日期选择器的数量

jquery - 将多个参数传递给 $.delegate

javascript - Select2() 不是函数

javascript - 如何每 n 秒运行一次 jQuery load() 请求?

javascript - 如何将 html 转换为 JSX、ReactJS 组件?

javascript - 使用javascript使div垂直居中

PHP 和 JavaScript : Image file description properties (Summary tab)

php - 更改默认网址php

javascript - Props 不会更新 state 的值

javascript - window.scrollTo 在 iOS chrome 中不起作用