我有一个AngularJS应用程序,我正在尝试使用AJAX请求从运行在IIS8.5上的ASP.NET WebApi2应用程序中拉入一个静态文件。与下面的示例类似-
ng-include="http://server/Content/icon.svg“
如果我在浏览器中导航到该URL,IIS会很乐意地将该文件作为静态文件提供服务。但是,当我使用AJAX请求时,Angular首先尝试OPTIONS请求,因为它是CORS请求,而IIS抛出不允许的405方法。
我已经尝试将这些标题添加到网站的静态内容文件夹中-

然而,这并没有什么不同。此外,IIS服务器没有安装WebDAV,这是我认为可能会导致问题的原因。
发布于 2015-06-12 14:47:21
我有一个IIS站点,其中有一个虚拟目录,我从该目录中提供静态文件。
为了在浏览器中执行CORS,我所做的就是配置站点的“ponses de réponses HTTP”,在英语中应该类似于"HTTP Response“。
在这里,我添加了一个新的头文件"Access-Control-Allow-Origin“,值为"*”。
从现在开始,我可以在XHR中使用静态文件了。
我的实际问题是向file:///c/xxx/index.html提供OpenStreetMap磁贴,而chrome中的错误是
来自源'http://myhost‘的图像已被跨域资源共享策略阻止加载:请求的资源上没有'Access-Control-Allow- origin’标头。因此不允许访问源'null‘。
发布于 2015-01-29 03:28:52
这适用于我访问forms身份验证下子目录中的.png文件。您应该能够更改扩展名。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".*" mimeType="image/png" />
</staticContent>
<handlers>
<clear />
<add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
</handlers>
</system.webServer>
</configuration>如果将OPTIONS添加为this问题中回答的Access-Control-Allow-Methods的动词,会怎么样?
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>发布于 2020-07-02 16:42:43
如果您想在没有任何授权的情况下将静态文件提供给公共互联网,您可以将CORS策略设置为:
Internet Information Server可使用以下IIS配置为您的站点进行配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="GET,OPTIONS" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Max-Age" value="86400" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>https://stackoverflow.com/questions/28200507
复制相似问题