当前浏览:首页 / WordPress函数 / wp_send_json_error()

wp_send_json_error( mixed $data = null, int $status_code = null, int $options )

将JSON响应发送回Ajax请求,表示失败

error

json

send


描述

如果$data参数是WP_Error对象,则对象中的错误将作为错误代码和相应消息的数组进行处理和输出。所有其他类型的输出无需进一步处理。


参数

$data

(mixed)(可选) 将数据编码为JSON,然后打印并die。

默认值: null

$status_code

(int)(可选) 要输出的HTTP状态代码。

默认值: null

$options

(int)(可选) 要传递给json_encode()的选项。默认值为0。


更多信息

响应对象将始终具有值为falsesuccess键。如果在$data参数中向函数传递了任何内容,它将被编码为data键的值。



源码

查看源码 官方文档


更新日志

版本描述
5.6.0添加了$options参数。
4.7.0添加了$status_code参数。
4.1.0如果传入了WP_Error对象,$data参数现在将被处理。
3.5.0开始引入

使用示例

  • 示例1
    $error = new WP_Error( '001', 'No user information was retrieved.', 'Some information' );
    
    wp_send_json_error( $error );
    
  • 示例2

    只执行wp_send_json_error();不会发送错误–它实际上会返回200。因此,如果您想避免AJAX success但触发error,请确保添加错误代码,如500,或任何您喜欢的代码。

  • 示例3

    实例

    jQuery( document ).ready( function() {
    
    	jQuery( '#btn_save' ).on( 'click', function( event ) {
    		event.preventDefault();
    		jQuery.post( pluginUrl + 'ajax/save_field.php', jQuery( '#my-form' ).serialize(), function( data ) {						
    			alert( data.success );
    		} );
    	} );
    } );
    

    save_field.php

    <?php
    $nonce = $_POST['_wpnonce_name'];
    if ( empty( $_POST ) || ! wp_verify_nonce( $nonce, 'my-nonce' ) ) {
    	wp_send_json_error(); // sends json_encoded success=false
    }