2010-02-11 83 views
1

我有一個簡單的Ajax調用:

$.ajax({url: my_url_here, 
     dataType: 'text', 
     success: function(data, textStatus) { 
      if(textStatus == "success") { 
       alert('success'); 
      } 
      else { 
       alert('fail'); 
      } 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
    //do stuff 
    } 
}); 

如果我跑這一個簡單的HTML文件,我得到預期的警報。 但是,如果我在我的一個ASP.NET MVC視圖中運行這個,ajax運行正常,但回調函數永遠不會到達。 我已經嘗試創建一個空白的查看頁面,除了jQuery和這個腳本之外什麼都沒有,排除與我其他Javascript的任何衝突。

我可以在Firebug中看到請求,並且它按照預期返回200響應,但它只是沒有達到回調。

我曾嘗試加入cache: false paramater,與asynch paramater發揮各地,似乎沒有這樣的伎倆......

任何線索?

編輯: 更新我的jQuery的錯誤回調建議。達到在View頁面,(而不是在簡單的HTML測試頁但是)

錯誤回調,我也得到了以下內容:

XMLHttpRequest.status爲「0」

textStatus是「錯誤」

errorThrown是「不確定」

EDIT 2 我要指出,我請求實際上並不返回任何網址,我只是想瑟如果它存在 - 如果我在瀏覽器中查看URL,它會顯示一個簡單的文本字符串。我是否使用了錯誤的方法?

爲什麼它會在一個簡單的HTML文檔中正常工作,但不在ASP.NET MVC視圖中? ASP是否對ajax請求做了些什麼?

編輯3

因此,原來我試圖訪問外部站點,這是不允許的。

似乎很奇怪,我在做從簡單的測試HTML文件,罰款,我只用時查看頁面...

回答

2

落實error處理爲好,以防萬一遇到了問題。 。您的結果後

error: function(XMLHttpRequest, textStatus, errorThrown) {...}

更新

我相信問題在於你的鏈接做了.net表單的回發..

嘗試停止事件的傳播在點擊處理程序(你啓動的Ajax調用) 像

$('yourselector').click(function(e){ 
    e.stopPropagation(); 
    // now do your ajax call here ... 
}); 
+0

更新OP-這是一個很好的建議!錯誤回調現在在視圖頁面中調用,但不是在html測試頁面 – elwyn 2010-02-11 21:54:00

+0

嘗試更新的答案.. – 2010-02-11 22:12:02

+0

這並沒有解決它。是否可能是這樣的: http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp – elwyn 2010-02-11 22:18:55

0

我得到這個挺了很多,錯誤是相當unhelpfull。

我想它必須是您要求的網址的問題。