getjson不适用于生产服务器,但适用于开发机器

时间:2015-08-29 06:14:19

标签: ajax asp.net-mvc-5

我有以下javascript正在使用更改的选项来填写选择列表。

$(function () {
$("#bedrijvenauto").each(function () {
    var target = $(this);
    var dest = target.attr("data-autocomplete-destination");
    target.autocomplete({
        source: target.attr("data-autocomplete-source"),
        select: function (event, ui) {
            alert('selected bedrijf');
            event.preventDefault();
            target.val(ui.item.label);
            $(dest).val(ui.item.value);
            $("#projectenauto").val("");
            alert('selected bedrijf');
            alert($('#BEDRIJF_ID').val());
            $.getJSON("/Project/GetListViaJson", { bedrijf: $('#BEDRIJF_ID').val() }, function (data) {
                alert('selected bedrijf');
                alert(data);
                $("#PROJECT_ID").empty();
                $("#PROJECT_ID").append(new Option("Maak een selectie", 0));
                for (var i = 0; i < data.length; ++i) {
                    alert(data[i].value + ' ' + data[i].label);
                    $("#PROJECT_ID").append(new Option(data[i].label, data[i].value));
                }
            });
        },
        focus: function (event, ui) {
            event.preventDefault();
            target.val(ui.item.label);
        }
    });
    target.val($("#BEDRIJF_NAAM").val());
});

它在我的开发电脑上就像一个魅力。即使数据返回结果,警报也全部出现。这与开发pc的区别在于,在调用getJSON之后没有给出任何结果 我觉得我在这里错过了一个细节。 我不习惯在网络服务器上进行调试,因为我通常在WPF中创建GUI应用程序,这是学生为他的假期而工作的工作,现在我不得不让他工作而不再在他身边。假期完成:-( 但不适合我。

1 个答案:

答案 0 :(得分:1)

您的评论中指出的404错误表示您创建的网址不正确。始终使用@Url.Action()方法确保正确生成它们。在你的脚本

var url = '@Url.Action("GetListViaJson", "Project")';
$.getJSON(url, { bedrijf: $('#BEDRIJF_ID').val() }, function (data) {
  ....
}

或者如果这是一个外部脚本,则在主视图中添加var url = '@Url.Action(...)';(不在外部脚本文件中评估剃刀代码),或将其作为data-属性添加到元素中处理

data-url = "@Url.Action(...)"

并使用var url = $(someElement).data('url');

重新获取