AJAX路径不对
AJAX path is not right
我有一个带有几个级联下拉列表的 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 更改为
url = ~/WorkOrderSubmissions/GetLinesByWorkorderJson
url = /WorkOrderSubmissions/GetLinesByWorkorderJson
url = WorkOrderSubmissions/GetLinesByWorkorderJson
None 他们的工作。我认为 ~ 应该转到 Web 应用程序的根目录,即 http://localhost/mea.
~
语法只能被ASP.Net识别;它会被任何 JS 代码从字面上理解。您需要通过 C# 代码向 JS 提供 URL:
var url = '@Url.Content("~/WorkOrderSubmissions/GetWorkstationsByActivityJson")';
或者更好:
var url = '@Url.Action("GetWorkstationsByActivityJson", "WorkOrderSubmissions")';
我有一个带有几个级联下拉列表的 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 更改为
url = ~/WorkOrderSubmissions/GetLinesByWorkorderJson
url = /WorkOrderSubmissions/GetLinesByWorkorderJson
url = WorkOrderSubmissions/GetLinesByWorkorderJson
None 他们的工作。我认为 ~ 应该转到 Web 应用程序的根目录,即 http://localhost/mea.
~
语法只能被ASP.Net识别;它会被任何 JS 代码从字面上理解。您需要通过 C# 代码向 JS 提供 URL:
var url = '@Url.Content("~/WorkOrderSubmissions/GetWorkstationsByActivityJson")';
或者更好:
var url = '@Url.Action("GetWorkstationsByActivityJson", "WorkOrderSubmissions")';