AJAX 路径不正确

本文关键字:不正确 路径 AJAX | 更新日期: 2023-09-27 18:36:00

>我有一个带有一些级联下拉列表的Web应用程序。 所以我使用 ajax 来更新下一个下拉列表的值。 我把javascript脚本放在一个单独的文件中。

// Code that triggers when there is a change in Activity drop down.
    $('#ActivityId').change(function () {
        var activityId = $(this).val();
        // Empty the Workstation.
        $('#WorkstationId').empty();
        $('.showhide-workstation').show();
        var url = "~/WorkOrderSubmissions/GetWorkstationsByActivityJson";
        // AJAX call that re-populate Workstation drop down depending on the Activity selected.
        $.ajax({
            type: 'POST',
            url: url,
            dataType: 'json',
            data: { activityId: activityId },
            success: function (codes) {
                $('#WorkstationId').append('<option value=""></option>');
                $.each(codes, function (i) {
                    $('#WorkstationId').append('<option value = "' + codes[i].Value + '">' + codes[i].Text + '</option>');
                });
            },
            error: function (ex) {
                $('#WorkstationId').append('<option value=""></option>');
            }
        }); // END $.ajax() on GetRejectCodesByActivityJson
    }); // END $('#ActivityId').change()

当我从Visual Studio中运行它时,代码可以工作。 当我将其部署到本地 Web 服务器时,它不起作用。 我将其部署到

http://localhost/mea

当我在 Chrome 中打开开发者工具时,我看到错误。

POST http://localhost/~/WorkOrderSubmissions/GetLinesByWorkorderJson 404 (Not Found)

我试图将网址更改为

url = ~/WorkOrderSubmissions/GetLinesByWorkorderJson
url = /WorkOrderSubmissions/GetLinesByWorkorderJson
url = WorkOrderSubmissions/GetLinesByWorkorderJson

它们都不起作用。我以为~应该去Web应用程序的根目录,这是 http://localhost/mea。

AJAX 路径不正确

~语法只被 ASP.Net 识别;任何JS代码都会从字面上理解。您需要通过 C# 代码向 JS 提供 URL:

var url = '@Url.Content("~/WorkOrderSubmissions/GetWorkstationsByActivityJson")';

或者更好的是:

var url = '@Url.Action("GetWorkstationsByActivityJson", "WorkOrderSubmissions")';