我一直在邮递员那里做一个完全相同的API请求,一个来自位于localhost的react应用程序,所以在我的机器上,但当我评估响应时,我得到两者之间不同的结果。
该请求包含odata命令,如下所示:
Articles?$expand=Category&$select=Category
授权是通过我已经检查过的承载令牌,并且在两个请求中都是正确的,并且标题和URL也完全相同。
唯一不同的是响应,其中chrome缺少数组中的一些条目,该数组应该包含这些作为Javascript对象的Category字段。
响应主体看起来像这样:
{
"@odata.context": ... , value: [
{
Category: ...
}
]
}
缺少的是邮递员中的一些类别对象,所以邮递员基本上按照预期工作。
此外,由于某种原因,请求在网络选项卡中出现两次作为选项,一次作为GET,我不知道为什么。有人知道在这种情况下罪魁祸首是什么?
邮差和浏览器是不同的东西。显然,您要查询的服务是区分请求,并根据请求的来源返回略有不同的结果。请求的详细信息(标题等)可能略有不同。
此外,由于某种原因,请求在网络选项卡中出现两次作为选项,一次作为GET,我不知道为什么。有人知道在这种情况下罪魁祸首是什么?
那是因为您从Web浏览器发出请求,因此同源策略生效。浏览器通过OPTIONS向服务器发送“预检”请求,显然返回适当的CORS头以允许主请求,然后发送主GET请求。看到: