由於Ajax調用如:jquery 1.9 .ajax()數據類型默認已更改?
$.ajax(
{
url:"MyWebService.blah",
data: {"data":"awesome"},
success : function(responseText)
{
var myJsonObj = $.parseJSON(responseText);
//do stuff with myJsonObj
}
});
這是工作的罰款。我今天將jQuery更新到了1.9(我在1.6版本中),作爲Safari的一個可能的修復,突然不支持各種切換功能(不再支持eventLayer.X),現在我所有的ajax調用都拋出下面的JavaScript錯誤:
Uncaught Syntax Error: Unexpected token o
一個小小的研究,經過一番測試,我發現上面的「responseText的」在我的代碼現在是一個JSON對象,而不是一個字符串。所以這個錯誤是有道理的,但我試圖圍繞這個來解決我的問題。 jQuery真的改變了默認的返回類型嗎?我查看了文檔:
http://api.jquery.com/jQuery.ajax/
和dataType默認爲「智能猜測」。我可以看到這可能是方便的,但我也不喜歡它。
因此,這裏是我的問題:
- 這是jQuery中的一個新的(ISH)的變化?
- 它是1.9版本嗎?或者以前是這樣的,我是使用1.6的化石?
- 有什麼建議來處理這種和我的代碼「面向未來」的某種?
這是一個非常重要的變化,會影響很多代碼。我會通過我的代碼並刪除任何解析我返回的數據到JSON的實例,但是這整個事情有點令人不安。我誤認爲沒有指定數據類型?我想這是一個很好的做法,強制執行一個數據類型,而不是依靠默認值,但...哇。我獨自一人,還是在jQuery方面有點冒失鬼?
http://jsfiddle.net/5e9KC/在這裏可以正常工作...嗯這是什麼'o'?必須有別的東西在這裏改變 –
看到curCSS被棄用 –
@mcpDESIGNS你的小提琴不「工作」,因爲它什麼都不做。顯然JavaScript需要實際執行才能拋出錯誤。 烘烤,「curCSS?」我沒有在我的代碼中使用它,爲什麼會這樣呢? – AceCorban