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