好,
我做了一个"新闻"您可以发布文章的网站。你可以在新闻页面看到它们。我有一个标志系统,所以你可以在需要时标记它。当您单击标志按钮时,会弹出一个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/
一切都在荷兰,但你应该能够理解它。 (至少我希望如此)
答案 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.'));
}