我正在尝试向我们的业务 API 之一(运行 .NET Core 3.1/ASP Core MVC 的后端)发出非常简单的获取请求,但它给了我不一致的结果。如果通过表单数据字段传递的令牌值的长度大于大约 1000 个字符,则请求将因 CORS 错误而停止(相当标准的“已被 CORS 策略阻止:没有‘Access-Control-Allow-Origin’标头”存在于所请求的资源上”),但低于该长度,请求将不会出现问题。在 Chrome 或 Firefox 上运行都会出现有关缺少此标头值的 CORS 错误。 API 本身或其运行的 IIS 服务器中设置的输入大小没有任何具体限制,因此我对可能发生的情况感到困惑。
我假设这是 CORS 错误实际上只是掩盖其他正在发生的事情的情况之一。有什么明显的我忽略的事情吗?
obj = {
data: {
idToken: "A".repeat(1200) // just for testing purposes
}
};
str = JSON.stringify(obj);
const fd = new FormData();
fd.append("token", str);
const BaseURL = "https://XXXX";
const url = `${BaseURL}/api/YYY/getLocations`;
fetch(url, {
method: 'post',
body: fd,
})
.then...
事实证明,处理所有外部可见 API 请求的网络设备对所有传入请求施加了严格的大小限制。一旦提升到更高的水平,一切都会按预期进行。