如何修复ASP.NET MVC动作方法找不到404错误在IIS托管的网站没有端口号在URL时通过jQuery AJAX 调用?

iih3973s  于 2023-06-23  发布在  .NET
关注(0)|答案(1)|浏览(84)

IIS中的ASP.NETMVC应用程序没有在默认网站中添加端口号,但没有命中操作方法并获得404错误。
由于我的客户要求忽略iis托管网站中的端口号,我在默认网站中添加了一个应用程序。因此,它成功地与着陆/主页。但在主页上,我有一个下拉列表,其中通过在ASP.NETMVC控制器中使用jsonresult操作 AJAX ,对JavaScript发生更改事件。
当dropdownlist更改时,错误命中为domain/controller/actionmethod找不到404。

在jQuery AJAX 调用中,我使用了url home/actionmethod。由于我在默认网站托管,我的主页url是domain/appname。appname是我在默认网站中添加的应用程序名称。端口号为域名:8282(任何端口号)的工作方式如下:

但在默认站点中添加端口号为80后,根本不工作。代码在这里。

任何建议将不胜感激。

eqfvzcg8

eqfvzcg81#

IIS中的ASP.NETMVC应用程序没有在默认网站中添加端口号,但没有命中操作方法并获得404错误。
实际上,基于您共享的代码片段和描述,我已经尝试模拟您的场景,并以预期的结果结束。
我有以下项目结构:

控制器:

public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        [Route("Home/TitleAccessUpdate")]
        public JsonResult TitleAccessUpdate(int? Id)
        {
            return Json($"Access Id {Id} has been updated!");
        }
    }

浏览次数:

<strong><span id="appendHere"></span></strong></>
<hr />

<input id="accessId" />
<button type="button" name="submitButton" value="Edit" class="btn btn-primary"
        onclick="GetAjaxResponse()">
    Submit Request
</button>


@section scripts {
    <script>
        function GetAjaxResponse() {

            var idToUpdate = document.getElementById("accessId").value;
            console.log(idToUpdate);

            var localUrl = "https://localhost:7251/Home/TitleAccessUpdate";
            var publishUrl = "https://mypublishdapp.azurewebsites.net/Home/TitleAccessUpdate";

            $.ajax({
                type: "POST",
                url: localUrl,
                data: "Id=" + idToUpdate,
                dataType: "json",
                success: function (data) {
                    $("#appendHere").html(data);
                },
                error: function (xhr, status, error) {
                    alert('Data was not sent to backend!');
                }
            });
        }
    </script>
}

模拟测试本地服务器(& S):

    • 复查内容:**

首先,请仔细检查您的项目是否按预期在当地环境中工作。我已经尝试了和你一样的和预期的工作。
最重要的是,您的IIS端口不应该成为这种情况下的障碍。最重要的是,尝试从 Postman 调用该URL,如果URL正确,那么你应该从 Postman 那里得到响应,如果不是,那么你发布的应用程序URL可能会导致问题。您可以在不定义端口和不使用端口号的情况下进行尝试。
此外,在我的测试都工作正常.根据您的信息,您的URL似乎不正确,请仔细检查,如果该端口未被其他程序在该情况下使用,您的应用程序可能有端口冲突问题。

    • 注:**详情可refer to this sample查看。另外,请查看www.example.com核心项目如何配置IIS。asp.net core project.

相关问题