0

ITHitWebDav 服务器使用 IIS Windows 身份验证。

像这样设置:https ://www.webdavsystem.com/server/server_examples/iis/configuring_windows_authentication/

服务器组件位于 URL:https ://webdav.contoso.com (示例)

客户端应用程序使用 ITHit Ajax 库从另一个网站调用服务器。客户端网站位于:https ://client.contoso.com (与服务器网站相同的域 DNS)。

两个网站都托管在同一台机器上,同一台 IIS 服务器(托管在 Windows Server 2016 上)。Windows 身份验证针对名为 contosointernal.com 的域

客户端网站上的 Javascript 代码:

function testOpenWebDAV(sFolderUrl) {
    var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
    var sFolderAbsolutePath = sFolderUrl;
    var fCallback = function () { };

    webDavSession.OpenFolder(sFolderAbsolutePath);
}

错误:

ITHitWebDAVClient.js:7 Access to XMLHttpRequest at 'https://webdav.contoso.com/' from origin 'https://client.contoso.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    ITHit.Add._46.Send @ ITHitWebDAVClient.js:7
    ITHitWebDAVClient.js:7 Failed to load resource: net::ERR_FAILED
    ITHit.Add._46.Send @ ITHitWebDAVClient.js:7
    ITHitWebDAVClient.js:87 Uncaught _f7

从提琴手的问题是对服务器的 PROPFIND 请求。PROPFIND 不发送身份验证标头。

Per: : https://www.webdavsystem.com/ajax/programming/cross_origin_requests/ .NET 服务器添加了所有必要的 CORS 标头。我不需要手动添加它们。

4

0 回答 0