在IIS7中启用html文件的POST请求

前端之家收集整理的这篇文章主要介绍了在IIS7中启用html文件的POST请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题
关于此问题还有很多其他问题(特别是405方法不允许错误),但我还没有找到似乎有效的解决方案.

我有一个html和javascript的web应用程序(没有后端),javascript在表单中使用POST.我知道IIS看到html文件是静态的,只允许它们使用GET和HEAD动词,所以当一个表单发布时我得到“405 Method Not Allowed …”因为无效的方法(HTTP动词)而无法显示正在使用”.

组态
我在Win 7计算机上安装了IIS 7.默认情况下ISAPI / CGI / ASP等,WebDav都被禁用/未安装.我改变的唯一设置是为特征委派下的一些功能添加了读/写.

在默认站点上的Handler Mappings下,我有OPTIONSVerbHandler,TRACEVerbHandler和StaticFile. StaticFile请求限制仅在请求映射到文件文件夹时显示所有启用的动词,访问读取,调用处理程序.

System.Web.DefaultHttpHandler属性显示动词GET,HEAD和POST.

到目前为止尝试过
如果我设置另一个处理程序映射,复制OPTIONS但将动词设置为POST,则405错误消失,但我得到一个空白页面.

正如在this问题的底部附近所建议的那样,我尝试将其添加到我的web.config中,但它似乎没有任何影响:

<add name="HttpPost"/>

(我也对配置GUI做了同样的事情,并且还添加了HttpPostLocalhost.)

我已经尝试在html(just in case)中将帖子更改为POST,但这没有任何效果.

我也尝试在请求过滤下明确允许动词,但这也没有帮助.

有没有人有任何其他想法?我认为如果我安装asp并更改我的所有文件扩展名,它将起作用,但这似乎是不必要的.

解决方法

因此,如果没有安装后端语言来解释html文件而不是IIS静态文件处理程序,那么在IIS中发布html文件似乎是不可能的.如果有人知道不同,请告诉我! (为了说清楚,Apache没有这个问题.)

由@ JudasIscariot1651链接的帖子有效,但是,它需要安装ASP并且如果你使用非ASP的后端语言(可能只是发布到html页面 – 我无法测试)会破坏你的网站.您需要配置用于处理html文件的任何语言而不是静态文件处理程序.

如果你没有使用后端语言,或者正在使用ASP,这里是ASP版本的副本(访问权限被修改为post中的示例) – 首先安装ASP和ISAPI:

<add name="html" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="None" />

如果你正在使用PHP,你需要使用以下(调整PHP设置) – 可能你已经安装了PHP和CGI:

<add name="html" path="*.html" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\php-cgi.exe" resourceType="Unspecified" requireAccess="None" />

猜你在找的HTML相关文章