所以我有一个应用程序需要将数据发送到我们的团队负责人使用带有Express.js的NodeJS创建的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-body,可能想要返回更新的元信息。该 响应可能包括新的或更新的元信息形式 实体标题,如果存在,应该与...相关联 要求的变体。
如果客户端是用户代理,它不应该更改其文档视图 从导致请求发送的那个。这个回应是 主要是为了允许在没有的情况下进行动作的输入 但是,导致更改用户代理的活动文档视图 任何新的或更新的元信息应该应用于文档 目前在用户代理的活动视图中。
204响应绝不能包含消息体,因此总是如此 由标题字段后的第一个空行终止。
然后接下来它返回500内部服务器错误。所以在我看来它会返回这个错误,因为没有内容要从服务器返回?
你能否告诉我为什么会回复这个回应?
答案 0 :(得分:3)
检查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的原因是因为在处理该端点的函数的实现中存在一些异常。