gpt4 book ai didi

javascript - WCF 上的 CORS - 当请求来自客户端计算机时,为什么要指定 Web 服务器?

转载 作者:行者123 更新时间:2023-12-03 07:22:03 25 4
gpt4 key购买 nike

为了允许向 WCF 服务发出 HTTP GET 请求,我必须通过在 WCF 方法中执行此操作来允许 Web 服务器访问:

WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", webServer);

为什么会这样?该请求来自客户端浏览器,而不是 Web 服务器。

加载页面
客户端 -- HTTP --> Web 服务器

发出 WCF 请求
客户端 -- HTTP --> WCF 服务

我使用Wireshark来检查WCF服务器上的流量。它确实来自用户打开网页的客户端计算机。它不是来自网络服务器。那么,当流量不是来自 Web 服务器时,为什么在 Access-Control-Allow-Origin 中指定 Web 服务器会起作用呢?

如果有帮助,这是 JavaScript 中的调用:

    var config = {
url: 'http://WcfServerName:8000/MmaWebApiService/CreateCassette',
method: 'POST',
contentType: 'application/json; charset=utf-8',
data: { 'moduleSerialNumbers': [$scope.state.subId1, $scope.state.subId2, $scope.state.subId3] }
};

$http(config)
.then(function (response) {
addCassetteToStack(response.data.d);
$rootScope.setUserMessage('Cassette ' + response.data.d.SerialNumber + ' created.');
}, function (response) {
console.log('err: ', response);
});

最佳答案

我不确定所提供的代码中 webServer 的类型是什么或者属性是什么,所以我做了一些假设。一般来说,WCF 服务器是您的 protected 资源,您应该在该级别允许或拒绝来自不同源域(例如您的 Web 服务器或 JavaScript 代码)的访问。即使您的 JavaScript 调用是在客户端进行的,请求 header 也应该包含您的源域,用于访问控制。

关于javascript - WCF 上的 CORS - 当请求来自客户端计算机时,为什么要指定 Web 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com