php - php中如何返回错误回调?

标签 php javascript jquery callback http-status-code-404

我想知道是否可以从我创建的 php 页面将错误回调返回到我的 jquery,然后该回调将根据我的 php 页面中发生的操作显示警报。我尝试创建一个带有 404 错误的 header ,但这似乎不起作用。

示例 JQuery 代码:

$(document).ready(function()
    {
        var messageid= '12233122abdbc';
        var url = 'https://mail.google.com/mail/u/0/#all/' + messageid;
        var encodedurl = encodeURIComponent(url);
        var emailSubject = 'Testing123';
        var fromName = 'email@emailtest.com';

        var dataValues = "subject=" + emailSubject + "&url=" + encodedurl + "&from=" + fromName + "&messageID=" + messageid;
        $('#myForm').submit(function(){
            $.ajax({
                type: 'GET',
                data: dataValues,
                url: 'http://somepage.php',
                success: function(){
                     alert('It Was Sent')
                }
                error: function() {
                    alert('ERROR - MessageID Duplicate')
                }
            });
            return false;
        });
    });

示例 PHP 代码又名 somepage.php:

<?php
include_once('test1.php');
include_once('test2.php');


if(isset($_GET['subject']))
{
   $subject=$_GET['subject'];
}
else
{
   $subject="";
}

if(isset($_GET['url']))
{
   $url=$_GET['url'];
}
else
{
   $url="";
}
if(isset($_GET['from']))
{
    $from=$_GET['from'];
}
else
{
    $from="";
}

if(isset($_GET['messageID']))
{
    $messageID = $_GET['messageID'];
}
else
{
    $messageID="";
}



    $stoqbq = new test2($from, $messageID);
    $msgID = new stoqbq->getMessageID();
    if($msgID = $messageID)
    {
        header("HTTP/1.0 404 Not Found");
        exit;
    }
    else
    {
        $userID = $stoqbq->getUser();
        $stoqb = new test1($subject,$url,$messageID,$userID);
        $stoqb->sendtoquickbase();
    }

     ?>

-编辑-

如果您在使用 json 时收到无效标签消息,这就是我解决此问题的方法:

服务器端 PHP 代码部分 -

if($msgID == $messageID)
{
    $response["success"] = "Error: Message Already In Quickbase";
    echo $_GET['callback'].'('.json_encode($response).')';
}
else
{
    $userID = $stoqbq->getUser();
    $stoqb = new SendToQuickbase($subject,$url,$messageID,$userID);
    $stoqb->sendtoquickbase();
    $response["success"] = "Success: Sent To Quickbase";
    echo $_GET['callback'].'('.json_encode($response).')';
}

客户端 JQuery 部分-

$('#myForm').submit(function(){
            $.ajax({
                type: 'GET',
                data: dataValues,
                cache: false,
                contentType: "application/json",
                dataType: "json",
                url: "http://somepage.php?&callback=?",
                success: function(response){
                    alert(response.success);
                }
            });
            return false;
        });

最佳答案

您可以从 PHP 中返回带有成功 bool 值的 JSON 响应。

if($msgID = $messageID)
{
    echo json_encode(array('success' => false));
}
else
{
    $userID = $stoqbq->getUser();
    $stoqb = new test1($subject,$url,$messageID,$userID);
    $stoqb->sendtoquickbase();
    echo json_encode(array('success' => true));
}

在你的Javascript中:

 $.ajax({
            type: 'GET',
            dataType: 'json',
            data: dataValues,
            url: 'http://somepage.php',
            success: function(response){
                 if(response.success) {
                   alert('Success');
                 }
                 else {
                   alert('Failure');
                 }
            }
        });

关于php - php中如何返回错误回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6376678/

相关文章:

javascript - 使 anchor 标记不会在幻灯片中淡出

php - 是否有 PHP linter 规则来防止明显的注释?

php - 在当前命名空间之前的命名空间

javascript - 将 boolean 值传递给另一个 Angular 组件

javascript - jest snapshot 使用 enzyme 打破情绪 10/babel 7

javascript - jQuery 导航栏不起作用?

php - 在 MYSQL、PHP 或 R 中从 mysql 数据库制作共现矩阵

php - 如何重新映射数组以将其保存到夫妇

javascript - 是否有任何将 json 转换为 url 参数的 native 函数?

javascript - jQuery 滚动回到顶部