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
C#, .NET, .Net Core
ASP.NET MVC, ASP.NET Web Forms, ASP.NET Core
HTML 5, CSS 3, Javascript, jQuery, Bootstrap
Entity Framework, NHibernate, Dapper
Sql Server, MySql, Oracle
Windows Server, Ubuntu, Debian, Pardus
Xamarin Forms, Android Studio
--- The future of the open web platform is looking very bright!
--- .NET is a free, cross-platform, open source developer platform for building any app.
Google Analytics İzleme
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder