Ajax 函数在本地 运行 时工作,但在 IIS 中部署时它不工作
Ajax function working when running locally but when deployed in IIS it is not working
我的 MVC 应用程序中有一个如下所示的 ajax 函数
$.ajax({
type: "GET",
url: '/UpdateDetail/GetlocationAjax',
data: { cityId: cityId },
dataType: "json",
success: function (result) {
$.each(result, function (key, val) {
workloc.append(
$('<option></option>').val(val).html(key)
);
});
},
error: function (result) {
}
});
当我 运行 来自 visual studio 的应用程序时,此功能完美运行,但当我将其部署到 IIS 7.5 时,此 ajax 功能不起作用
我尝试将 URL 作为 url: '../UpdateDetail/GetlocationAjax',
然后同样在本地级别也不起作用但是我有另一个应用程序,我在其中调用 ajax 函数作为
$.ajax({
type: "GET",
url: '../Preapproval/Getactivitycodetype',
dataType: "json",
success: function (result) {
$("#code_type-" + index)
.append($('<option></option>').val("").html("--Type--")
);
$.each(result, function (key, val) {
$("#code_type-" + index).append(
$('<option></option>').val(val).html(key)
);
});
},
error: function (result) {
}
});
这在本地和 IIS 中都能完美运行。
我的第一个 ajax 函数在 IIS 中无法运行是什么问题?
$.ajax({
type: "GET",
url: '@Url.Action("GetlocationAjax", "UpdateDetail")',
data: { cityId: cityId },
dataType: "json",
success: function (result) {
$.each(result, function (key, val) {
workloc.append(
$('<option></option>').val(val).html(key)
);
});
},
error: function (result) {
console.log(result);
}
});
为此,您必须将 js 保留在 cshtml 页面中,而不是外部 js 文件中,因为它使用的是 MVC 函数 Url.Action()
;
如果你想将 js 保存在外部文件中,那么创建一个隐藏字段并像这样从隐藏字段中读取 url
<input type="hidden" id="ajaxUrl" value='@Url.Action("GetlocationAjax", "UpdateDetail")' />
然后在您的 ajax 调用脚本中使用:
var url = $("#ajaxUrl").val();
$.ajax({
type: "GET",
url: url,
同时使用 chrom 检查器跟踪网络请求 F12,网络选项卡。
我的 MVC 应用程序中有一个如下所示的 ajax 函数
$.ajax({
type: "GET",
url: '/UpdateDetail/GetlocationAjax',
data: { cityId: cityId },
dataType: "json",
success: function (result) {
$.each(result, function (key, val) {
workloc.append(
$('<option></option>').val(val).html(key)
);
});
},
error: function (result) {
}
});
当我 运行 来自 visual studio 的应用程序时,此功能完美运行,但当我将其部署到 IIS 7.5 时,此 ajax 功能不起作用
我尝试将 URL 作为 url: '../UpdateDetail/GetlocationAjax',
然后同样在本地级别也不起作用但是我有另一个应用程序,我在其中调用 ajax 函数作为
$.ajax({
type: "GET",
url: '../Preapproval/Getactivitycodetype',
dataType: "json",
success: function (result) {
$("#code_type-" + index)
.append($('<option></option>').val("").html("--Type--")
);
$.each(result, function (key, val) {
$("#code_type-" + index).append(
$('<option></option>').val(val).html(key)
);
});
},
error: function (result) {
}
});
这在本地和 IIS 中都能完美运行。
我的第一个 ajax 函数在 IIS 中无法运行是什么问题?
$.ajax({
type: "GET",
url: '@Url.Action("GetlocationAjax", "UpdateDetail")',
data: { cityId: cityId },
dataType: "json",
success: function (result) {
$.each(result, function (key, val) {
workloc.append(
$('<option></option>').val(val).html(key)
);
});
},
error: function (result) {
console.log(result);
}
});
为此,您必须将 js 保留在 cshtml 页面中,而不是外部 js 文件中,因为它使用的是 MVC 函数 Url.Action()
;
如果你想将 js 保存在外部文件中,那么创建一个隐藏字段并像这样从隐藏字段中读取 url
<input type="hidden" id="ajaxUrl" value='@Url.Action("GetlocationAjax", "UpdateDetail")' />
然后在您的 ajax 调用脚本中使用:
var url = $("#ajaxUrl").val();
$.ajax({
type: "GET",
url: url,
同时使用 chrom 检查器跟踪网络请求 F12,网络选项卡。