Google Analytics İzleme

26 Mayıs 2013

Javascript - jquery-1.9.1.js'de bulunan parseJSON metodunun undefined değişkenden dolayı oluşan çalışma hatası

MVC 3 ile yazdığım sayfada jquery dosyasında şu şekilde bir hatayı Visual Studio 2012 yakalamaktadır:

Kullandığım browser versiyonu: Internet Explorer 8 Sürüm: 8.0.7601.17514
Windows Versiyonu: Windows 7 Ultimate Service Pack 1 64 bit
Jgquery versiyonu: 1.9.1

Hata mesajı:
Unhandled exception at line 541, column 4 in http://localhost:19797/Scripts/jquery-1.9.1.js
0x800a03ea - Microsoft JScript derleme hatası: Sözdizimi hatası

Hata verdiği kısım:
parseJSON: function( data ) {
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
...
...

Html sayfasına eklediğim javascript dosyaları şu şekilde idi:
<script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

Çözüm:
Bu hata window.JSON.parse metoduna gönderilen data değişkeninin "undefined" olmasından kaynaklanmaktadır. Jquery 1.9'dan önceki sürümlerde undefined kontrolü bu kod öncesi çalıştırılıyordu, ama artık bu kontrol bulunmuyor.
Bu değişikliği dikkate alarak düzenlenen jquery.validate.unobtrusive.js dosyasını tekrar güncelledim ve bu sorun düzeldi.
Şu an kullandığım jquery.validate.unobtrusive.js sürümü:
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.30506.0" targetFramework="net45" />



Kaynaklar:
jQuery.ajax returning a JSON result of an empty string
http://jquery.com/upgrade-guide/1.9/#jquery-ajax-returning-a-json-result-of-an-empty-string
Please support jQuery v1.9.0 properly in jquery.validate.unobtrusive
http://connect.microsoft.com/VisualStudio/feedback/details/776965/please-support-jquery-v1-9-0-properly-in-jquery-validate-unobtrusive#details
Syntax error with parseJSON during unobtrusive validation
http://stackoverflow.com/questions/14822540/syntax-error-with-parsejson-during-unobtrusive-validation
MVC 4 Internet project JSON error after upgrade to jQuery 1.9
http://stackoverflow.com/questions/14453235/mvc-4-internet-project-json-error-after-upgrade-to-jquery-1-9
'JSON' IS UNDEFINED ERROR WHEN CALLING JQUERY.PARSEJSON
http://bugs.jquery.com/ticket/13169




Hiç yorum yok: