URL 用 iisnode 重写动词 PUT 和 DELETE 的情况
URL Rewrite in case of verbs PUT and DELETE with iisnode
这是我的 的后续问题,重点是当我尝试为 Node.JS 调用 DELETE 或 PUT 动词时遇到 404 错误IIS上的应用配置了iisnode和URL重写如下:
<handlers>
<add name="iisnode" verb="*" path="app.js" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="my app rule" stopProcessing="true" patternSyntax="Wildcard">
<match url="*" />
<action type="Rewrite" url="app.js" />
</rule>
</rules>
</rewrite>
甚至没有调用脚本 app.js,url 也没有被重写。
这是一个众所周知的错误还是我还应该做什么?
GET 和 PUT 动词没有问题(当然我已经使用后者实现了解决方法)。
这是由于 IIS 的请求过滤(选项卡 HTTP 动词)
如下面的截图所示添加了缺失的动词,问题解决了。
作为文本,直接在 web.config
的 system.webServer
内:
<security>
<requestFiltering>
<verbs>
<add verb="PUT" allowed="true" />
<add verb="DELETE" allowed="true" />
</verbs>
</requestFiltering>
</security>
这是我的
<handlers>
<add name="iisnode" verb="*" path="app.js" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="my app rule" stopProcessing="true" patternSyntax="Wildcard">
<match url="*" />
<action type="Rewrite" url="app.js" />
</rule>
</rules>
</rewrite>
甚至没有调用脚本 app.js,url 也没有被重写。
这是一个众所周知的错误还是我还应该做什么?
GET 和 PUT 动词没有问题(当然我已经使用后者实现了解决方法)。
这是由于 IIS 的请求过滤(选项卡 HTTP 动词)
如下面的截图所示添加了缺失的动词,问题解决了。
作为文本,直接在 web.config
的 system.webServer
内:
<security>
<requestFiltering>
<verbs>
<add verb="PUT" allowed="true" />
<add verb="DELETE" allowed="true" />
</verbs>
</requestFiltering>
</security>