Postman和Chrome不同的API响应

vlju58qv  于 7个月前  发布在  Postman
关注(0)|答案(2)|浏览(105)

我一直在做完全相同的API请求,一个来自Postman,另一个来自位于本地主机的React应用程序,但是当我评估响应时,我得到了两个不同的结果。
请求包含odata命令,看起来像这样:

Articles?$expand=Category&$select=Category

字符串
授权是通过一个我已经检查过的不记名令牌进行的,在两个请求中都是正确的,头部和URL也完全相同。
唯一不同的是响应,其中Chrome缺少数组中的一些条目,该数组应该包含这些类别字段,这些字段是JavaScript对象。
响应体看起来像这样:

{
    "@odata.context": ... , value: [
        {
            Category: ...
        }
    ]
}


缺少的是postman中的一些类别对象,所以基本上postman是按预期工作的。
另外,由于某种原因,该请求在网络选项卡中出现了两次,一次是OPTIONS,一次是GET,我也不知道为什么。

rkttyhzu

rkttyhzu1#

Postman和浏览器是不同的东西。显然,您正在查询的服务正在区分请求,并根据请求的来源返回略有不同的结果。请求的细节(头部等)可能略有不同。
另外,由于某种原因,该请求在网络选项卡中出现了两次,一次是OPTIONS,一次是GET,我也不知道为什么。
这是因为您是从Web浏览器发出请求的,因此同源策略生效。浏览器通过OPTIONS向服务器发送“preflight”请求,服务器显然会返回相应的CORS头以允许主请求,然后发送主GET请求。请参阅:

kninwzqo

kninwzqo2#

对我来说,这个问题是Postman发送给API的request.body和我的前端应用发送的request.body之间的差异。我的应用发送的request. body有一个缺失的字段。
希望这对你有帮助。

相关问题