Ajax不再工作,而以前没有改变任何事情

时间:2016-11-20 20:14:27

标签: javascript php jquery ajax

好,

我做了一个"新闻"您可以发布文章的网站。你可以在新闻页面看到它们。我有一个标志系统,所以你可以在需要时标记它。当您单击标志按钮时,会弹出一个javascript确认,询问您是否确实要标记该消息。当你点击确认id变量和文章变量发布到一个php脚本,该脚本通过电子邮件发送给我一个删除它和文章的链接。

但是在我将VPS从Ubunu 16.04更改为Debian 8之后,它再也无法工作了。

它没有将数据传递给php脚本。我只是不知道为什么。

这是我的javascript代码:

<script>
function Confirm(id){

    if (confirm("Weet je zeker dat je dit bericht wilt vlaggen?")){
        var vid = '#' + id ;

        var bericht = $(vid).html();

        $.ajax({
            type: "POST",
            url: "flag.php",
            data: {"bericht": bericht, "id": id },
            success: function () {
                location.href="flag.php";
            }
        });

    }

}

</script>

这是我的PHP:

<?php

var_dump($_POST);
// this is just to test if the POST is empty or not. (its empty)

$id = $_POST["id"];
$link = "http://h2624478.stratoserver.net/site/News/del.php?    id=".$id."&&secure=S93ja432481Sjefdan23JS23asa923jWISQ128S212g";
$bericht = $_POST["bericht"];


$to = "luuk.wuijster@hotmail.com";
$subject = "Flagged message";
$headers = "From: flag@luukwuijster.eu";

$compleet =  "Bericht: \r\n \r\n " . $bericht . "\r\n \r\n" . $link;

if(!empty($bericht)) {

if (mail($to, $subject, $compleet, $headers)) {
    echo 'Het bericht is geflaged, en word beken.';

} else {

    echo 'Er is wat mis gegaan, probeer opnieuw.';

}

} else {

echo 'error 2';

}

//header('Location: http://h2624478.stratoserver.net/site/News/');

?>

如果您想查看网站的实际效果:

http://h2624478.stratoserver.net/site/News/

一切都在荷兰,但你应该能够理解它。 (至少我希望如此)

1 个答案:

答案 0 :(得分:1)

dataType: 'json'添加到jQuery ajax可以解决问题。

尝试将jQuery中的错误函数修改为此

error: function (jqXHR, exception) {
        var msg = '';
        if (jqXHR.status === 0) {
            msg = 'Not connect.\n Verify Network.';
        } else if (jqXHR.status == 404) {
            msg = 'Requested page not found. [404]';
        } else if (jqXHR.status == 500) {
            msg = 'Internal Server Error [500].';
        } else if (exception === 'parsererror') {
            msg = 'Requested JSON parse failed.';
        } else if (exception === 'timeout') {
            msg = 'Time out error.';
        } else if (exception === 'abort') {
            msg = 'Ajax request aborted.';
        } else {
            msg = 'Uncaught Error.\n' + jqXHR.responseText;
        }
        $('#post').html(msg);
}

此功能将帮助您调试问题。

您可能希望以JSON格式发送响应。

e.g。

if (mail($to, $subject, $compleet, $headers)) {
    echo json_encode(array('success'=>true,'msg'=>'Het bericht is geflaged, en word beken.'));
} else {
    echo json_encode(array('success'=>false,'msg'=>'Er is wat mis gegaan, probeer opnieuw.'));
}