mod_rewrite似乎弄乱了我的ajax post脚本

时间:2012-12-08 16:20:34

标签: php jquery ajax apache mod-rewrite

我在上一个问题中提到的getLikes脚本在我将url重写为更干净的版本时根本不起作用...是b / c它是一个Post请求吗?其他一切都很好,就像查找用户配置文件的get部分一样。 这是mod_rewrite:

RewriteEngine on
RewriteRule ^profile/([^/\.]+)/?$ profile.php?p=$1 [L]

这里是ajax:它应该获取ID,然后发布到一个页面,返回用户是否喜欢这个配置文件...它基本上是一个像按钮

public function likesScript($p){?>
    <script>

    //display list of people who like this
    function getLikes(){
    $.ajax({
        type: "POST",
        url: "likelist.php",

        data: { p: "<?php echo $_GET['p']?>"}
    }).success(function(res) {

        $("#likedBy").html(res); 
        //console.log(res); 

        if($('li#<?PHP echo $_SESSION['userId']; ?>').length){
            $(".Like").hide();
            $(".UnLike").fadeIn();
        } else {  
            $(".UnLike").hide();
            $(".Like").fadeIn();
        }
    });
}

1 个答案:

答案 0 :(得分:0)

url: "likelist.php"更改为url: "/likelist.php"

使用绝对路径,URI包含域名后面的所有内容。

http_URL =&#34; http:&#34; &#34; //&#34;主持人[&#34;:&#34;端口] [ abs_path [&#34;?&#34;查询]]

通过在开头或URI处添加/,它几​​乎与您写的http://example.com/相同。

由于您已将网址重写为profile/name,因此会查找显然不存在的profile/name/likelist.php