在php中将HTTP内容类型响应设置为“application / json”

时间:2015-07-20 17:23:34

标签: php json php-5.3 php-5.4

我有一个问题。我有以下条件:

You should return an HTTP 500 status code and more details about the error in the message body. Set the HTTP content type response to “application/json”.The error detail must be in JSON format as described below:

 {
    "ErrorCode" : 402,
    "ErrorMessage" : "Item"
  }

我试过这样:

if(!Gain::verifyIfUserExistByIdm($aOutput['UserId'])){
    header("HTTP/1.0 500 Internal Server Error");
    return json_encode(array('ErrorCode'=>407,'ErrorMessage'=>'Error'));
    die();
}

但不行,你能帮帮我吗? Thx提前

1 个答案:

答案 0 :(得分:1)

您需要输出JSON(不只是返回它),并通过设置Content-Type让客户端知道内容是JSON:

// The user does not exist
if ( ! Gain::verifyIfUserExistByIdm($aOutput['UserId'])) {

    // If the user does not exist then "Forbidden" would make sense
    header("HTTP/1.0 403 Forbidden");

    // Let the client know that the output is JSON
    header('Content-Type: application/json');

    // Output the JSON
    echo json_encode(array(
        'ErrorCode'    => 407,
        'ErrorMessage' => 'Error',
    ));
    // Always terminate the script as soon as possible
    // when setting error headers
    die;
}