【问题标题】:Understanding a 400 bad request with API使用 API 理解 400 错误请求
【发布时间】:2016-10-09 12:34:36
【问题描述】:

我最初认为我的代码中可能存在错误,但我已经做了进一步的测试,发现出现了奇怪的行为,我希望找出原因。所以我有一个简单的 API 路由

Route::group(['prefix' => 'api/v1'], function () {
    Route::post('createProject', ['uses' => 'ProjectAPIController@createProject']);
});

这会调用一个简单地返回成功消息的函数

public function createProject(Request $request)
{
    return response()->json(["Success", 200]);
}

我为使用此 API 构建的应用程序收到了错误的请求响应,因此我转而使用 Postman。

现在在 Postman 中,如果我对此路由发出 Post 请求,并通过正文传递 JSON,我仍然会看到错误请求。但是,如果我将 JSON 设置更改为文本,我会看到 Success 响应。因此,我发现 API 出于某种原因不再喜欢向其发送 JSON。

有什么原因会发生这种情况吗?

谢谢

【问题讨论】:

    标签: php json api laravel


    【解决方案1】:

    您没有正确格式化 JSON:

    public function createProject(Request $request)
    {
        return response()->json(["Success", 200]);
    }
    

    响应应采用以下格式:

    (data,statusCode)

    所以,上面的响应应该是这样写的:

    return response()->json(["Success" => true],200);
    

    传递给json方法的第一个参数的数据是关联数组,然后在第二个参数中我们传递状态码。

    【讨论】:

    • 谢谢,API 有什么理由不喜欢我传递的 JSON 吗?
    • 为此,我必须查看 API 调用返回的详细响应。可以发一下吗?
    • 嗨,我检查了我的日志,发现 ModSecurity: JSON 支持未启用
    • 对,这就解释了。那么您的请求现在可以正常工作了吗?
    • 不,试图弄清楚这个错误是什么意思,认为它与服务器有关
    猜你喜欢
    • 2014-04-19
    • 2022-01-04
    • 2020-11-13
    • 2011-06-18
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 2023-03-08
    相关资源
    最近更新 更多