首页 > 解决方案 > 如何使用 IIS url 重写将 MVC 应用程序操作调用重定向到远程 Web api

问题描述

我有一个网站(.net 核心,全部编译在 dll 中,即没有视图,没有可修改的 javascript)我没有源代码(由其他无法访问的人制作),我的客户想要一个该网站上的页面,该页面对同一应用程序中的控制器操作进行 ajax 调用,以重定向到新的 Web api 方法。

因此,例如,此页面 (_http://the-old-site.com/Home/Index) 有一个带有字段和按钮的表单。在表单字段中输入一些值并按下按钮后,将对 _http://the-old-site.com/Home/Process 进行 POST ajax 调用,将值传递给操作。

我正在尝试配置 url 重写模块,以便它不会调用 _http://host.com/Home/Process,而是发布到 _http://new-api-I-did.com/Process

现在,我的规则看起来像这样,但它从未被击中:

 <system.webServer>
    <rewrite>
      <rules>
        <rule name="redirect to api" stopProcessing="true">
          <match url="/Home/Process" />
          <action type="Rewrite" url="http://new-api-I-did.com/Process" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

使用 Postman 对其进行测试时,该 api 本身可以完美运行。一切正常,除了重写。我尝试了重写和重定向。

提前致谢。

编辑 让规则正常工作,但现在,在重定向中发送的是 OPTIONS 而不是 POST 并且没有发送表单的数据......不知道我该怎么做。

标签: redirectiisasp.net-core-mvcasp.net-core-webapiurl-rewrite-module

解决方案


推荐阅读