我正在进行ajax更新。我只想要成功或失败的回应,所以我知道如何处理前端的一些事情。问题是它不起作用。对这一切都是全新的。
$('.delete-template-popup .confirm').on('click', function() {
var templateName = $('.loaded-template-name').html();
var templateArray = {};
templateArray.templateName = templateName;
var JSONObject = [templateArray];
var templateJson = JSON.stringify(JSONObject);
$.ajax({
url: 'http://localhost/ds-layouts/public/delete-template.php',
type: 'post',
data: {"templatePHP" : templateJson},
success: function(data) {
console.log(data)
if (data.status == "success") {
console.log(1)
}
// if (data.status == "success") {
// closePopup($('.delete-template-popup'));
// window.location.replace("http:////localhost/ds-layouts/public/manage-layouts.php");
// } else {
// $('.delete-template-popup .error').show().html('An error occurred processing your request. Please try again. If this error persists contact blah.');
// }
}
});
});
和php
if ($flag) {
//mysqli_commit($connection);
if ($debug) {
echo "pass";
echo "\r\n";
}
//$_SESSION["message"] = "Template delete was successful.";
//header('Content-Type: application/json');
header('Content-Type: application/json; charset=UTF8');
echo json_encode(array('status' => 'success'));
} else {
if ($debug) {
echo "fail";
echo "\r\n";
}
//mysqli_rollback($connection);
// header('Content-Type: application/json');
// echo json_encode(array('status' => 'failure'));
}
所以这笔交易是我进入了php判断的if块。如果我有块的标题部分,我会正确传递所有的echo语句,我可以在Chromes开发人员控制台中阅读它们。我取消注释标题声明的那一刻没有任何作用。这适用于$ flag case中的任何一个为true或false。
我在另一个区域有相同类型的脚本,它工作得很好。不要在意这些评论。我只是在评论事情,以找出事情的发展方向。这就是我如何确定标题导致它的原因。
答案 0 :(得分:0)
也许将dataType: "json",
添加到您的AJAX请求对象会有帮助吗?
答案 1 :(得分:0)
试试这个php
header('Content-Type: application/json'); //must be FIRST output.
if ($flag) {
//mysqli_commit($connection);
if ($debug) {
echo json_encode(array('debug' => 'pass'));
}
else
{
echo json_encode(array('status' => 'success'));
}
} else {
if ($debug) {
echo json_encode(array('debug' => 'fail'));
}
else
{
//mysqli_rollback($connection);
echo json_encode(array('status' => 'failure'));
}
}
我已经更改了调试块以返回json,因为启用debug会打破ajax。
答案 2 :(得分:0)
由于答案是作为评论发布的,我无法将答案标记为已修复。我将把这个答案标记为解决问题的原因:
“标题必须在echo之前 - user4035”
感谢user4035让我知道在服务器的任何打印形式的html之前的任何回声之前的标题...我应该知道。