当我在web.config中使用URL重定向时,如何将AJAX.POST响应解析为301?

时间:2015-03-07 23:21:43

标签: asp.net ajax azure 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重写之外还有其他方法吗?

如果我必须从重写中删除此特定文件,我该怎么做?

1 个答案:

答案 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。 我理解该属性否定=“真实”统计数据以避免在应用此规则时出现这种情况。我通过反复试验方法了解它。不确定它是否正确。

希望它能帮助有需要的人。