2010-09-20 63 views
1

我想在Firefox中測試Jquery ajax調用,但它不工作。我的意思是我的服務器沒有收到任何請求。但是,當我在IE8測試它工作正常。這是我的阿賈克斯電話:JQuery ajax調用不工作在Firefox瀏覽器

$("#getWeatherReport").click(function(){ 
       $cityName = "New York"; 
       $.ajax({ 
        type: "POST", 
        dataType:"xml", 
        url: "http://localhost:8080/Test/WeatherServlet", 
        data: "cityName="+$cityName, 
        success: function(data) { 
         alert($("report", data).text()); 
        }, 
        error: function(xhr, textStatus, errorThrown) { 
         alert('ERROR['+xhr.statusText+']'); 
        } 
       }); 
      }); 

它甚至沒有調用錯誤函數。並從我的服務器代碼(Java)我設置內容類型爲「文本/ XML」。 有什麼建議嗎?

+0

你看過它在螢火蟲驗證郵件成功嗎? – Aardvark 2010-09-20 23:54:29

+0

我有Firebug,但在URL下,它顯示爲「選項WeatherServlet」我不確定這是否導致somethig。它應該是「POST」的權利? – jgg 2010-09-21 00:12:51

+0

我已經糾正了這個,現在它說錯誤函數中的alert('ERROR ['+ textStatus +']')時出現「parseerror」。 – jgg 2010-09-21 00:32:41

回答

2

你的字符串是不正確序列化,我不肯定如果是這樣的問題,但它可能是,它絕對是一個潛在的一個後,嘗試一下本作的即時測試:

var $cityName = "New+York"; 

作爲一個更持久的解決方案,通過data作爲對象,像這樣:

data: {cityName: $cityName}, 
+0

我按照您的建議更改了代碼。仍然服務器沒有收到任何請求,但錯誤功能正在調用。當我說alert('ERROR ['+ textStatus +']')時它說「parseerror」; – jgg 2010-09-21 00:08:37

+0

@goutham - 網頁上的端口是什麼?如果它不是':8080',它將得到一個空的響應,由於相同的原始策略導致解析器錯誤 – 2010-09-21 10:41:46

+0

是的它是8080。 – jgg 2010-09-21 17:35:08

2

您是否安裝Firebug

最好的辦法是安裝Firebug,它會附帶一個控制檯,通知您任何javascript錯誤。您也可以使用它(通過「網絡」選項卡)來監視您的頁面發出的所有請求。

從我所看到的,你的代碼看起來不錯(除了可能的問題通過@Nick Craver指出)

而且,爲什麼「$」您cityName變量? Javascript中的'$'前綴是爲機器生成的代碼保留的(因此它不會與用戶代碼衝突)。

+0

+1它應該是'var cityName =「紐約」;' – 2010-09-21 00:18:38

+0

我已經糾正了這個現在它說「parseerror」,當我說錯誤函數alert('ERROR ['+ textStatus +']')。 – jgg 2010-09-21 00:32:16

1

嘗試在FF安裝螢火插件:: https://addons.mozilla.org/en-US/firefox/addon/1843/

然後檢查:::: Net選項卡>>所有選擇

刷新頁面,看到的是你的Ajax調用實際上獲取調用。如果是,那麼在調用中有任何語法錯誤或任何可變的空錯誤。如果一切都很好,那麼你可以想到更多的問題

+0

我有Firebug,但在URL下,它顯示爲「選項WeatherServlet」我不確定這是否引起了一些警告。它應該是「POST」的權利? – jgg 2010-09-21 00:12:24

0

通常,當我結束parseerror這意味着返回標頭類型是錯誤的,或者服務器以某種方式發送額外的數據與響應。例如,如果我想要返回JSON,並從x-debug獲取JSON和一些HTML。

另外,OPTIONS請求是針對@Nick所指的跨域請求。

一個有用的鏈接可以讓你的started

相關問題