我有一个带有 jQuery-ui 选项卡的 MVC 页面。当用户选择相关选项卡时,将执行 jQuery ajax 调用以加载选择列表。它工作正常。然后,用户可以通过单击按钮重新加载列表以再次执行相同的调用。
从按钮调用时,ajax 调用总是失败!我尝试交换顺序并跳过选项卡显示上的调用,以使按钮加载成为第一个事件。但它仍然给出了同样的错误。
ajax 调用被隔离在被调用的同一个函数中。当从不同的事件中调用时,这有什么不同?
这是相关代码:
$("#tabs").tabs({
show: function (event, ui) {
var tabName = $(ui.tab).attr("href");
if (tabName == "#tabResult")
loadResults();
}
});
$("#btnLoadResults").click(function () {
loadResults();
});
function loadResults() {
var testCaseId = $("#TestCase_Id").val();
$.getJSON("api/TestsApi/GetResults", { testCaseId: testCaseId })
.done(function (data) {
$("#lstResults").empty();
$.each(data, function (index, item) {
$("#lstResults").append("<option value='" + item.Id + "' data-response='" + item.Response + "'>" + item.StartTime + "</option>");
});
$("#txtResult").val("");
$("#lstResults").prop("selectedIndex", 0);
});
}
来自标签显示的调用始终有效。按钮单击调用在调试环境中执行时有效,但在 Intranet 上部署时无效。
我签入了 Fiddler,但两个调用的请求和响应是相同的。
生成的查询字符串看起来很奇怪,就像以某种方式提交了整个当前表单......
我注意到 jQuery-ui 声明选项卡显示事件已“弃用”并且现在要使用“激活”。我试过激活,但它不起作用。我的版本是 jquery-ui-1.8.24.js 和 jquery-1.10.2.min.js