从 php 向 ajax 发送错误消息

2024-03-14

我正在尝试从 php 向 ajax 发送“通知”或错误消息。我正在努力实现这样的目标:

php:

if (myString == '') {
    // Send "stringIsEmpty" error to ajax
} else if (myString == 'foo') {
    // Send "stringEqualsFoo" error to ajax
}

ajax

$.ajax({
    url: $(this).attr("action"),
    context: document.body,
    data: formData, 
    type: "POST",  
    contentType: false,
    processData: false,
    success: function(){
        alert("It works");
    },
    error: function() {
        if(stringIsEmpty) {
            alert("String is empty");
        } else if(stringEqualsFoo) {
            alert("String equals Foo");
        }
    }
});

如何向ajax发送错误消息?

Update

这是我的 php 文件。我尝试使用echo解决方案答案说,但是当我输出什么时data是(在ajax中),我得到undefined:

<?php
$img=$_FILES['img'];
    if($img['name']==''){
        echo('noImage');
    }else{
        $filename = $img['tmp_name'];
        $client_id="myId";
        $handle = fopen($filename, "r");
        $data = fread($handle, filesize($filename));
        $pvars   = array('image' => base64_encode($data));
        $timeout = 30;
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
        curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
        $out = curl_exec($curl);
        curl_close ($curl);
        $pms = json_decode($out,true);
        $url=$pms['data']['link'];
        if($url!=""){
            echo "<h2>Uploaded Without Any Problem</h2>";
            echo "<img src='$url'/>";
        }else{
            echo "<h2>There's a Problem</h2>";
            echo $pms['data']['error'];
            header("HTTP/1.1 404 Not Found");
        } 
    }
?>

I added echo("noImage") in if($img['name']==''){


仅当请求失败时才会调用错误函数,请参阅http://api.jquery.com/jQuery.ajax/ http://api.jquery.com/jQuery.ajax/

因此,如果您从 PHP 服务器返回响应,则不会触发错误函数。但是,您可以定义一个函数来根据从 PHP 发送的响应来处理错误:

success: function(data){
        if (data === "stringIsEmpty") {
           triggerError("stringIsEmpty");
        } else if (data === "stringEqualsFoo") {
           triggerError("stringEqualsFoo");
        }
    },

然后你可以得到这样的错误函数:

function triggerError(error) {
    if (error === "stringIsEmpty") {
        alert("Your string is empty!");
    } else if (error === "stringEqualsFoo") {
        alert("Your string is equal to Foo!");
    }
}

如果您向 post.php 发出请求,您可以只返回一个字符串:

// Create a function to see if the string is empty
$funcOutput = isStringEmpty();
echo $funcOutput;

或者专门针对这个例子:

echo "stringIsEmpty";

欲了解更多信息,请参阅:如何将数据从 PHP 返回到 jQuery ajax 调用 https://stackoverflow.com/questions/2410773/how-to-return-data-from-php-to-a-jquery-ajax-call

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 php 向 ajax 发送错误消息 的相关文章

随机推荐

  • 找不到存储的图像

    我目前正在使用此代码来存储图像 可能是错误的 路径是这样的 public static final String IMAGE DIR test 保存图像的代码如下 public class ImageSaver private String
  • 如何在Python中模拟链式函数调用?

    我正在使用mock http www voidspace org uk python mock 由 Michael Foord 编写的库 用于帮助我在 django 应用程序上进行测试 我想测试我是否正确设置了查询 但我认为我不需要实际访问
  • Release 文件夹中的 vshost.exe 文件?

    为什么会为我的应用程序的发布版本生成 appname vshost exe 文件 我可能会补充一点 我正在使用外部 dll 库和一些不安全的代码 更有趣的是 我从 Release 文件夹启动的应用程序无法正常工作 从 Debug 文件夹启动
  • 自动在firestore索引中添加索引

    Can i 自动地添加索引在火库索引 我的应用程序使请求过滤器 and refers to 火库 for 显示结果 但如果firestore无法显示结果 在控制台中我看到link to 火库 for 添加索引 所以如果我push on th
  • 必须在 ConnectionDriverName 属性中指定 JDBC Driver 或 DataSource 类名“如何解决?”

    概述 这是我的第一个关于 Websphere 7 Server JPA 1 0 EJB Derby Database 的教程 第一 我的数据源名称是EJB3BANK 我的目标数据库是SHOP 第二 这个持久性 xml file
  • DropBoxManager 用例?

    我注意到一个DropBox管理器 http d android com reference android os DropBoxManager html自 FroYo API 8 以来已在 Android API 中引入 它看起来像是一个替
  • 简单测试 Spring Boot 安全性

    我正在努力测试受 Spring Security 保护的 URL 的访问控制 配置如下 http authorizeRequests antMatchers api user user authenticated antMatchers a
  • 如何加密 iPhone 上的 CoreData 内容

    我想将一些信息静态加密存储在 iPhone 应用程序上 我是 iPhone 开发新手 对 CoreData 以及它如何与视图集成不太熟悉 我的数据为 JSON 但我可以轻松地将其放入 SQLITE3 数据库或任何其他支持数据格式中 我将采用
  • Bootstrap 导航栏通知徽章

    我正在建立一个网站 允许用户互相发送消息 我使用 AJAX 收到了许多新消息 因此 我只需要找到一种方法来显示badge在用户的导航栏中 这是我想要实现的目标 我想要badge将使用创建 span class badge badge pil
  • ng-bootstrap 日期选择器不工作

    我正在尝试在我的 angular2 项目中使用 ng bootstrap 日期选择器 但出现以下错误 There is no directive with exportAs set to ngbDatepicker 这是我的代码
  • 从 URL 插入图像

    以下代码适用于大多数图像 URL 但对于此特定 URL 我收到错误 Sub test Sheets 1 Shapes AddPicture https images na ssl images amazon com images M MV5
  • 如何将侦听器附加到列表视图?

    我有一个ListView每行都有一个自定义布局TextView和三个EditText 当我单击其中的单个行时ListView一项活动启动后会将您带到另一页面 我写了一些代码 但它不起作用 代码如下所示 在适配器类 getView 方法中 我
  • Picasso 从其 URI 加载可绘制资源

    我必须展示一个drawable from res进入一个ImageView 在此应用程序中 出于某些原因我使用毕加索 在这种情况下 我需要加载drawable使用它的 URI 而不是它的 id 为此 这是我的代码 uri Uri parse
  • 如何将多个文件作为单独的数据帧读取并在列上执行计算?

    我计算单个股票的回报如下 data pd read csv r file csv data index data Date data Return data AAPL pct change 1 100 data out put Date A
  • 接收 gcm 推送通知时刷新活动

    Update GCM https developers google com cloud messaging 已弃用 请使用FCM https firebase google com docs cloud messaging How to
  • 如何覆盖温莎城堡中注册的组件?

    我刚刚开始使用 Windsor 所以请温柔点 我有一个场景 我希望能够覆盖 替换放置在 Windsor 容器内的组件 继续阅读 在我的产品代码中 我希望能够注册一个实现基类的组件 并使用容器来解析实现者 到目前为止 使用 container
  • 如何在 cypress 中测试错误请求

    我正在使用不正确的凭据测试 cypress 中的 POST 方法的日志记录 这会返回 400 个错误请求 我需要对其进行测试 这就是我所拥有的 describe Login API Test Correct user login gt it
  • 如何使用 pandas.assign 从 pandas DataFrame 索引创建新列

    我正在尝试使用 pandas 分配方法创建一个新列 该列从 Dataframe 索引中派生其值 我真的很想使用分配函数来实现所需的输出 我该怎么做呢 提前致谢 import pandas as pd df pd DataFrame 1 2
  • 新的 WPF 窗口仅显示在原始窗口下方

    在我的 WPF 应用程序中 主窗体上有一个 ListView 用于显示数据集中的绑定数据 当用户双击 ListView 中的一行时 会打开一个详细信息窗口 在我的 XAML 中 我使用了一种样式在列表视图上创建双击处理程序
  • 从 php 向 ajax 发送错误消息

    我正在尝试从 php 向 ajax 发送 通知 或错误消息 我正在努力实现这样的目标 php if myString Send stringIsEmpty error to ajax else if myString foo Send st