所以,在花了很多时间之后,我不得不问这个问题。 我在ASP.NET中发送一个AJAX POST请求
$.ajax({
type: "POST",
url: "Manage.aspx/StUpdate",
data: JSON.stringify(obj),
contentType: "application/json; charset=utf-8"
});
我的Web.config删除了所有.aspx扩展规则,如下所示:
<rewrite>
<rules>
<rule name="RemoveASPX" enabled="true" stopProcessing="true">
<match url="(.*)\.aspx" />
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="AddASPX" enabled="true">
<match url=".*" negate="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
</conditions>
<action type="Rewrite" url="{R:0}.aspx" />
</rule>
我尝试将AJAX POST发送到URL:Manage / StUpdate,它不起作用。
在我阅读了很多内容之后,我知道只有这样才能让这个AJAX POST方法继续进行,而不是对这个特定文件进行重写。
我的理解是对的吗?除了更改URL重写之外还有其他方法吗?
如果我必须从重写中删除此特定文件,我该怎么做?
答案 0 :(得分:0)
问题已解决。如果有人遇到类似的问题,解决方案是使用web.config。
<rewrite>
<rules>
<rule name="RemoveASPX" enabled="true" stopProcessing="true">
<match url="(.*)\.aspx" />
<conditions>
<add input="{REQUEST_URI}" pattern="^/Login.aspx" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="AddASPX" enabled="true">
<match url=".*" negate="false" />
<conditions>
<add input="{REQUEST_URI}" pattern="^/Login.aspx" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
</conditions>
<action type="Rewrite" url="{R:0}.aspx" />
</rule>
</rules>
</rewrite>
解决方案是确保在删除和添加ASPX条件时排除要避免的特定URL。 我理解该属性否定=“真实”统计数据以避免在应用此规则时出现这种情况。我通过反复试验方法了解它。不确定它是否正确。
希望它能帮助有需要的人。