我在azure中部署了一个ASP.NET API。它实际上是一个移动服务,任何人都知道它是什么。
几天前,一位客户报告了一个问题。在对API的一些请求中,返回以下内容:
XMLHttpRequest无法加载https://jpblive.azure-mobile.net/tables/User/me。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“https://app.justphonebook.com”访问。
但奇怪的是,我们的API在WebApiConfig上启用了CORS:
public static void Register(){
ConfigOptions options = new ConfigOptions();
HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options));
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
}
我知道这是有效的,因为所有请求都会返回Access-Control-Allow-Origin:*。我已经多次测试了这个,没有其他客户遇到过这个问题。
这就是为什么在特定客户中发生这种情况非常奇怪。更奇怪的是,每次API请求都不会发生这种情况。它只发生在少数几个请求中。 (准确地说是2)
经过进一步检查,我发现所述客户通过私人工作网络连接到互联网。只有当用户尝试通过所述网络使用我们的API时,才会出现此问题。例如,如果他们使用移动设备访问API,一切都会顺利进行。
为什么会发生这种情况?网络如何影响它接收的响应头?我的第一个想法是他们有一个代理设置,不会提供所有的响应标头。但又为什么这只会在2个请求中发生?
非常感谢任何帮助。