【发布时间】:2019-01-07 02:35:34
【问题描述】:
就这么简单。我有一个HttpListener 在听。现在让我们忽略其余的代码。只是听者在听。
我配置了 2 个测试网站:“local-site-a.com”和“local-site-b.com”。我通过在我的主机文件中添加以下内容来配置它们:
127.0.0.1 local-site-a.com
127.0.0.1 local-site-b.com
站点 B 托管在 IIS 中,站点 A 映射到我的 HttpListener。
然后我有我的 JS:
async start() {
var response = await fetch("http://local-site-a.com/add/2/2", { "method": "get", "mode" : "cors", "credentials": "include" });
var result = await response.json();
console.dir(result);
}
CORS?十分简单。我读了所有关于它的内容。捕获预检(“OPTIONS”请求)以标头的标头响应。我只能在 Internet 和 Stack Overflow 上读到关于它的确切信息,这不是这里的问题。
我什至没想到这里会出现任何问题,但无论如何......
问题是我什至没有收到“OPTIONS”请求。我的HttpListener 捕获的第一件事是“GET”请求,这意味着它只是忽略了“OPTIONS”请求,对吗?
我在 GET 请求中获得了“Origin”标头。不应该在 OPTIONS 请求中吗?
【问题讨论】:
-
你为什么把它标记为 C#?您使用的是什么 HTTP 客户端?自动 OPTIONS 请求是现代浏览器和 HTTP 库的功能。不会总是自动发生。
-
为什么选择 C#?因为 .NET
System.Net.HttpListener。什么客户?他们都是。最新版本的 Firefox、Chrome、Opera 和 Edge。