2010-06-30 105 views
4

今天早上我一直在拉我的頭髮,試圖弄清楚這一點。jquery ajax調用JsonResult控制器方法在IIS6上的404結果

我有一個簡單的jQuery json請求到我的控制器jsonresult操作。當我在本地機器(IIS7)上運行它時,它工作正常。當我部署到運行IIS6的開發機器時,出現404錯誤。

腳本:

$(function() { 
      $('#search').click(function() { 
       var zip = $('#zip').val(); 
       $.ajax({ 
        type: "GET", 
        url: "/Customer/GetCityStateFromZip", 
        data: { zipcode: zip }, 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(msg) { 
         $("#stateList").setCityState(msg); 
        } 
       }); 
      }); 
     }); 

控制器:

public JsonResult GetCityStateFromZip(String zipcode) 
     { 
      List<CityState> list = new List<CityState>(); 
      foreach (var item in dt) 
      { 
       list.Add(new CityState(){City = item.City, StateCode = item.StateCode, StateName = item.StateName}); 
      } 
      return this.Json(list); 
     } 

請求數據:

GET /Customer/GetCityStateFromZip?zipcode=85215 HTTP/1.1 
Host: mydevserver 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 
Accept: application/json, text/javascript, */* 
Accept-Language: en-us,es-mx;q=0.7,en;q=0.3 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
X-Requested-With: XMLHttpRequest 
Referer: http://mydevserver/Customer/Entry 

響應數據:

HTTP/1.1 404 Not Found 
Date: Wed, 30 Jun 2010 18:01:06 GMT 
Content-Length: 1635 
Content-Type: text/html 
Server: Microsoft-IIS/6.0 
X-Powered-By: ASP.NET 

在我運行IIS6的開發服務器上,我設置了一個通配符映射(C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll)並且沒有選中「驗證該文件存在」。

我的MVC網站的所有其他方面工作得很好。我正在使用jQuery的地方(驗證,動畫等),這工作正常。我似乎無法超越這個Ajax問題。

是否還有一些其他設置或映射問題需要在IIS6機器上解決?也許IIS6不知道如何路由這個請求?

回答

4

好的,我在another SO post的幫助下計算出來的。

問題出在URL被傳遞。這與我的機器以及我部署的服務器顯然不同。我很尷尬,我沒有想到這一點。

我改變從這個$就電話:

​​

爲了這個,這是使用Url.Action到正確的完整路徑:

var url = '<%= Url.Action("GetCityStateFromZip","Customer") %>'; 
url: url 

,一切都很好。

0

對於IIS 6中的無擴展網址,您需要使用通配符映射。閱讀this blog post瞭解更多關於設置的細節。

+0

我已經有通配符映射設置。我更新了我的帖子以反映這一點。謝謝 – 2010-06-30 20:21:29

相關問題