ASP,NET API Access-Control-Allow-Origin在某些请求中不存在

时间:2016-04-05 14:55:27

标签: asp.net azure cors azure-mobile-services

我在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个请求中发生?

非常感谢任何帮助。

0 个答案:

没有答案