当我在 web.config 中使用 URL 重定向时,如何将 AJAX.POST 响应解析为 301?
How to resolve AJAX.POST response as 301 when I am using URL redirection in web.config?
所以,在花了很多时间之后,我不得不问这个问题。
我在 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重写还有什么办法吗?
如果我必须从重写中删除这个特定文件,我该怎么做?
问题已解决。如果有人遇到类似问题,解决方案是 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。
我了解属性 negate="true" stats 可以在应用此规则时避免这种情况。我通过试错法理解了它。不确定它是否正确。
希望对有需要的人有所帮助。
所以,在花了很多时间之后,我不得不问这个问题。 我在 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重写还有什么办法吗?
如果我必须从重写中删除这个特定文件,我该怎么做?
问题已解决。如果有人遇到类似问题,解决方案是 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。 我了解属性 negate="true" stats 可以在应用此规则时避免这种情况。我通过试错法理解了它。不确定它是否正确。
希望对有需要的人有所帮助。