Ajax在本地工作,但在部署网站时则不行

时间:2016-06-04 17:58:45

标签: php jquery ajax

我已经编写了一些在本地运行良好的jQuery代码但是当我将它上传到我的服务器时总是不起作用。例如:在我的网站上,当你点击占位符“Antal personer”的输入字段时,我发现我的网站上的fearlessmovement.se / kalas,它应该在数据库中增加一列。在本地运行代码可以正常工作并增加数据库中的值(数据库不是本地的)。

使用ajax的jQuery代码:

function saveClick() {
    antalP.click(function () {
        if (clicked === false) {
    //this is to only make it run once
            clicked = true;
            $.ajax({
                url: "http://fearlessmovement.se/saveClick.php"})
                    .done(function (msg) {
                        console.log(msg);
            });
        }
    });
}

php代码:

$con = mysqli_connect($host,$user,$pw,$db);
if (mysqli_connect_errno())
{
echo "MySQLi Connection was not established: " . mysqli_connect_error();
}

$query = "SELECT * FROM `clicks`";
$result = mysqli_query($con, $query);

$save = 0;



while ($row = mysqli_fetch_assoc($result)) {
$save = $row['click'];
echo $save;
}

$increment = $save + 1;

$query1 = "UPDATE `clicks` SET click=$increment";
$result1 = mysqli_query($con, $query1);

mysqli_close($con);

正如我前面提到的,当我在本地运行时,代码运行得很好。是我的服务器阻止了ajax请求吗?最糟糕的是,它可以工作一段时间,比如每五分钟一次。

1 个答案:

答案 0 :(得分:2)

问题是我的.htaccess,看起来像这样:

ErrorDocument 404 http://fearlessmovement.se/404.php

Options +FollowSymLinks -MultiViews
## Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

我想它与重写文件结尾有关,例如从url中删除.php会调用saveClick而不是saveClick.php。

解决方案:我在.htaccess中评论了所有内容,并且我的ajax请求有效!

感谢杰夫提示。

相关问题