【问题标题】:204 error code then 500 error code responses204 错误代码然后 500 错误代码响应
【发布时间】:2017-11-12 08:05:10
【问题描述】:

所以我有一个应用程序需要将数据发送到我们的团队负责人使用 NodeJS 和 Express.js 创建的 API。

最后,我有一个使用 VueJS 作为 UI 的 laravel 应用程序。在 Vue JS 组件内部。我正在使用 axios 向 API 请求。

axios.post('https://clearkey-api.mybluemix.net/sendcampaign', request)
                .then(function(response) {
                    //console.log(response);

                })

但是,它返回 204,这意味着根据这个 https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

204 无内容

服务器已完成请求,但不需要返回 实体主体,并且可能想要返回更新的元信息。这 响应可能包括新的或更新的元信息,形式为 entity-headers,如果存在应该与 请求的变体。

如果客户端是一个用户代理,它不应该改变它的文档视图 从导致发送请求的原因。这个回应是 主要目的是允许输入进行操作,而无需 导致用户代理的活动文档视图发生变化,尽管 任何新的或更新的元信息都应该应用于文档 当前在用户代理的活动视图中。

204 响应不能包含消息体,因此总是 由标题字段后的第一个空行终止。

然后它返回 500 Internal Server Error。所以在我看来它返回这个错误是因为服务器没有返回内容?

您能告诉我为什么它返回该响应的其他可能问题吗?

【问题讨论】:

    标签: node.js express vuejs2 laravel-5.3 axios


    【解决方案1】:

    检查204的“HTTP方法”是否为OPTIONS,500的方法是否为POST

    如果两者都是这样,那么您首先看到的是 CORS pre-flight request(返回 204 的 OPTIONS),然后是实际请求(返回 500 的 POST)。

    CORS 飞行前请求是您的浏览器在网页和后端托管在不同地址时向服务器发送的特殊 HTTP 消息。例如,如果您的网站托管在 http://localhost,但您尝试访问的后端托管在 https://clearkey-api.mybluemix.net

    204 的原因只是意味着您的后端端点已正确设置为处理/sendcampaign 的请求(您可以忽略它)。 500 的原因是处理该端点的函数的实现中出现了一些异常。

    【讨论】:

    • 感谢您花时间回答我的问题。是的,204 = 选项,500 = 发布。我不明白“500 的原因是因为在处理该端点的函数的实现中出现了一些异常。”这是我端的函数还是我的团队负责人创建的 API 中的函数?
    • 500 由托管在后端服务器上的代码返回:https://clearkey-api.mybluemix.net。因此,如果您的团队负责人为端点 /sendcampaign 创建了代码,那么他身边就有问题,因为即使您发送了错误的请求,服务器也应该以错误 400 回答,而不是 500
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    相关资源
    最近更新 更多