javascript - Ajax 不再工作了,虽然以前可以,但没有做任何改变

标签 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/

全是荷兰语,但你应该能够理解。 (至少我希望如此)

最佳答案

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 格式发送响应。

例如

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.'));
}

关于javascript - Ajax 不再工作了,虽然以前可以,但没有做任何改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708879/

相关文章:

php - 向数据库中插入 4 条数据,但仅在数据库中添加第 2 条数据

jquery - 使用 jquery 检查 CSS 属性时遇到问题

javascript - Node gyp 重建错误。为什么?

javascript - 索引不是连续整数的数组长度

javascript - 如何使用javascript获取动态生成表的值

javascript - 卸载时同步跨域ajax DELETE请求

jquery - 如何与hoverIntent集成?

javascript - [if (x or y)] 或 [if x else if y] 哪个更快

javascript - JSON 与 javascript 和 google script 的差异

php - CakePHP3 在同一模型中将表链接在一起(内连接)