1

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

阿贾克斯代码

    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
4

2 回答 2

4

尝试修改 url 为

url: '@Url.Action("PopDetails", "BatchPrograms")'
于 2013-03-04T16:32:52.130 回答
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.");
        }
    });
于 2013-03-04T16:35:19.987 回答