首页 > 解决方案 > OPTIONS 方法未请求凭据,401

问题描述

我试图通过 fetch 将一些数据发布到 API 服务器。服务器是一个 ASP.NET Web API,.NET Framework v4.5。在 IIS 上发布,仅启用 Windows 身份验证。

但是,帖子的预检请求标头不包含 cookie。所以我收到了“401 Unauthorized”错误。

我的 fetch 请求代码和来自 chrome 的请求标头。

fetch(url,
{
    method: 'POST',
    mode: 'cors',
    headers: {
        'Accept': 'application/json, text/plain, */*',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(loaItem),
    credentials: 'include'
})


OPTIONS /api/loasdup HTTP/1.1
Host: localhost:4501
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://localhost:8081
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, 
like Gecko) Chrome/67.0.3396.99 Safari/537.36
Access-Control-Request-Headers: content-type
Accept: */*
Referer: http://localhost:8081/loa/copy/LOA201807120000
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7

有任何想法吗?

IIS 中的响应标头:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Origin: http://localhost:8081

OPTIONS 的请求和响应详细信息 OPTIONS 的请求和响应详细信息

正常工作的 GET 请求和响应 GET 请求和响应

标签: javascriptasp.net-web-apivue.jsfetch

解决方案


推荐阅读