首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IIS中提供静态文件(用于CORS / OPTION请求)?

问如何在IIS中提供静态文件(用于CORS / OPTION请求)?
EN

Stack Overflow用户
提问于 2015-01-29 03:13:52
回答 3查看 7.2K关注 0票数 3

我有一个AngularJS应用程序,我正在尝试使用AJAX请求从运行在IIS8.5上的ASP.NET WebApi2应用程序中拉入一个静态文件。与下面的示例类似-

ng-include="http://server/Content/icon.svg“

如果我在浏览器中导航到该URL,IIS会很乐意地将该文件作为静态文件提供服务。但是,当我使用AJAX请求时,Angular首先尝试OPTIONS请求,因为它是CORS请求,而IIS抛出不允许的405方法。

我已经尝试将这些标题添加到网站的静态内容文件夹中-

​

​

然而,这并没有什么不同。此外,IIS服务器没有安装WebDAV,这是我认为可能会导致问题的原因。

EN

回答 3

Stack Overflow用户

发布于 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‘。

票数 2
EN

Stack Overflow用户

发布于 2015-01-29 03:28:52

这适用于我访问forms身份验证下子目录中的.png文件。您应该能够更改扩展名。

代码语言:javascript
复制
<?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的动词,会怎么样?

代码语言:javascript
复制
 <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>
票数 1
EN

Stack Overflow用户

发布于 2020-07-02 16:42:43

如果您想在没有任何授权的情况下将静态文件提供给公共互联网,您可以将CORS策略设置为:

  • Allow GET request
  • any
  • Allow all request Header
  • 允许选项回复缓存24小时

Internet Information Server可使用以下IIS配置为您的站点进行配置

代码语言:javascript
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28200507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档