2013-03-04 80 views
1

這個Ajax代碼完美的工作原理是我在本地機器上運行程序。但是,一旦我們把這個出來在DEV服務器上,我們得到一個404錯誤。該網站是一個與SQL數據庫進行通信的ASP MVC3網站,其餘網站沒有問題。我是全新的Ajax,因此我不太確定在哪裏尋找。這可能是IIS的問題嗎?Ajax在ASP MVC3站點返回404錯誤

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 

丁目的網絡錯誤信息

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 
+1

如果您只是在瀏覽器中輸入網址,網頁是否會加載? – 2013-03-04 16:31:13

+0

請注意,如果此操作使用僅HTTP POST屬性進行標記,那麼它將在瀏覽器中失敗,並顯示404,因爲GET沒有路由。 – Nik 2013-03-04 16:35:34

回答

4

嘗試修改鏈接到

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

你是我的英雄。這也解決了我遇到的問題,如果我做了搜索,然後再執行另一個操作,然後嘗試另一次搜索,我會得到一個404未找到的錯誤。將我的網址更改爲此並且效果很好。 – Jazzy 2013-10-24 23:46:59

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."); 
     } 
    }); 
+0

只有我沒有接受這個答案的原因是jQuery對話框不能正常工作(這是爲什麼它在我的文章中被註釋掉了)。現在我必須使用'alert'。 – NealR 2013-03-04 16:45:56

+0

那麼,在這種情況下是你的組件:) – 2013-03-04 17:02:06