Ajax在ASP MVC3站点上返回404错误

时间:2013-03-04 16:29:56

标签: ajax asp.net-mvc-3 jquery iis

这个Ajax代码完美运行是我在本地机器上运行程序。但是,一旦我们将它放在DEV服务器上,我们就会收到404错误。该站点是一个与MV数据库通信的ASP MVC3站点,该站点的其余部分没有问题。我是Ajax的新手,所以我不太确定在哪里看。这也是IIS的问题吗?

Ajax代码

    var request = $.ajax({
        type: 'POST',
        url: '/BatchPrograms/PopDetails',
        data: { 'programName': pgmname },
        dataType: 'text',
        success: function (data) {
            console.log(data);
            alert(data);
            //$('#data').dialog('open');
        },
        error: function (data) {
            console.log(data)
            alert("Unable to process your resquest at this time.");
        }
    });

Chrome的控制台错误消息:

POST http://insideapps.dev.symetra.com/BatchPrograms/PopDetails 404 (Not Found) 

send                                           jquery-1.8.3.js:8434
jQuery.extend.ajax                             jquery-1.8.3.js:7986
GetProgramDetails                              BatchDashboard:51
onclick                                        BatchDashboard:165

Chome的网络错误消息

Name (Path)      Method  Status (Text)    Type         Initiator             Size  Time (Latency)
PopDetails       POST    404 Not Found    Text/Html    jquery-1.8.3.js:8434  1.8KB 21ms
/BatchPrograms                                         Script                1.6KB 17ms

2 个答案:

答案 0 :(得分:4)

尝试将网址修改为

url: '@Url.Action("PopDetails", "BatchPrograms")'

答案 1 :(得分:1)

尝试使用Url.Action()帮助程序从应用程序中定义的表路径中获取路径。

 var request = $.ajax({
        type: 'POST',
        url: '@Url.Action("PopDetails", "BatchPrograms")',
        data: { 'programName': pgmname },
        dataType: 'text',
        success: function (data) {
          $('#data').dialog('open');
        },
        error: function (data) {
            alert("Unable to process your resquest at this time.");
        }
    });