2012-02-09 176 views
2

我在Chrome和AJAX中遇到了一個非常奇怪的問題,我有一段已經工作了一段時間的自動完成表單。今天早上我啓動了Visual Studio,並且它不再工作。它可以在Chrome中正常運行(如果我使用Firefox或IE,本地工作正常),但它不適用Chrome。

我得到的錯誤:

Failed to load resource

的開發人員工具,當我在錯誤拓展我得到:

f.support.ajax.f.ajaxTransport.sendjquery-1.7.1.min.js:4 
f.extend.ajaxjquery-1.7.1.min.js:4 
$.autocomplete.sourceCreate:217 
a.widget._searchjquery-ui-1.8.17.custom.min.js:127 
a.widget.searchjquery-ui-1.8.17.custom.min.js:127 
(anonymous function)jquery-ui-1.8.17.custom.min.js:127 

我放在一個斷點在回調函數在服務器上,但它不甚至不會把它交給服務器。錯誤肯定是在客戶端,這裏是客戶端代碼:

$("#LocationTxt").autocomplete({ 
      minLength: 4, 
      source: function (req, resp) { 
       $.ajax({ 
        type: "GET", 
        url: "/Ad/SearchLocations", 
        data: "term=" + req.term, 
        contentType: "application/json; charset=utf-8", 
        success: function (data) { 
         resp($.map(data, function (value, key) { 
          return { data: value, label: data[key].Name, value: data[key].Name }; 
         })); 
        }, 
        error: function (data) { 
         alert(data.statusText); 
        } 
       }); 
      }, 
      select: function (e, ui) { 
       var cityId = ui.item.data.Id; 
       $('#AdListing_LocationID').val(cityId); 
      } 
     }); 

而且錯誤事件被觸發,而狀態文本屬性是簡單的「錯誤」。不是很有幫助。我正在運行Chrome版本:17.0.963.46(我擁有截至2/9/2012的最新版本)。我相信我的Chrome在今天早上更新了,當時我啓動了我的電腦,但我不確定。是否有日誌告訴我什麼時候更新了Chrome?

+0

很酷。所以它不發送任何東西?當您通過開發者控制檯手動觸發它時會發生什麼?如果它永遠不會被調用,那麼可能是調用它的代碼? – tkone 2012-02-09 16:25:27

+0

所以我採取了你的建議,並手動運行它,但它仍然無法正常工作。但後來我決定比較IE/Firefox和Chrome之間的不同之處。當我禁用廣告攔截器插件時,我發現它工作!我想有一個更新,該插件打破了代碼或黑名單,因爲我填寫的表單創建了一個「廣告」,所以我的很多JavaScript對象名稱等在其中都有「Ad」這個詞。非常奇怪,但感謝您的幫助! – TheWebGuy 2012-02-09 17:40:04

回答

1

如果您正在處理代碼的本地副本,請確保您正在使用web服務器(如localhost)工作。如果您直接從文件系統進行工作,出於安全原因,谷歌瀏覽器將不允許您對文件系統上的文件發出Ajax請求。

一些事情...

刪除此:

contentType: "application/json; charset=utf-8", 

您還沒有發送JSON,你發送一個GET請求。相反,添加此

dataType: "json", 

以便jQuery預計接收json。

它也可能有助於讓您的服務器返回標頭,將contentType設置爲application/json並帶有正確的字符集utf-8

+0

我在IIS和Visual Studio中設置了它我正在使用「使用自定義Web服務器」選項,因爲我想爲圖像創建虛擬目錄,所以我沒有直接使用該文件系統。 – TheWebGuy 2012-02-09 15:58:36