2009-09-19 2 views
1

У меня есть простой запрос $ .ajax, который я пытаюсь получить в HTML-приложении в моем приложении ASP.Net MVC.Получение parserror с использованием JQuery + ASP.Net MVC на Firefox

 // Load the claim table 
    function GetClaimTable() { 
     $.ajax({ 
      type: "GET", 
      url: "claimtable", 
      data: {}, 
      datafilter: null, 
      dataType:'text', 
      success: function(msg){ 
       alert(msg); 
       $("#claimTable").html(msg.responseText); 
      }, 
      error: function(msg, sdf, sdd) { 
       alert(sdf); 
       alert(sdd); 
      } 
     }); 

Но вместо этого я получаю parseerror. Вызов успешный, потому что я вижу 200 OK в firefox, и ошибка имеет объект XmlHttpRequest, который имеет правильные данные в свойстве responseText.

Код хорошо работает в IE, но не работает в firefox. Притязание на url - это простое действие MVC.

Я прочитал здесь jQuery/ASP MVC -- parsererror in "$.ajax" calls, что это связано с опечаткой, которая была решена в jquery 1.3.2. Но у меня есть 1.3.2, и я получаю эту ошибку.

Любая помощь?

+0

Вы можете публиковать полную ошибку синтаксического анализа FF дает вам –

+0

нет полного parsererror. Вот и все. Это строка: «parsererror» –

ответ

0

Я, наконец, узнал, почему это происходит. Причиной был ajaxSetup, который я написал для обработки запросов jQuery webservice более плавно. Видимо, что-то было не так, хотя я переопределял настройки в своей новой функции и произошел синтаксический анализ. Я удалил ajaxSetup, и теперь все работает хорошо.

Это была функция, которая уничтожила 3 ​​часа моей жизни.

$.ajaxSetup({ 
    type: "POST", 
    cache:false, 
    contentType:"application/json;charset=utf-8", 
    data:"{}", 
    dataFilter: function(data) { 
     var msg; 

     if (typeof (JSON) !== 'undefined' && 
      typeof (JSON.parse) === 'function') 
      msg = JSON.parse(data); 
     else 
      msg = eval('(' + data + ')'); 

     if (msg.hasOwnProperty('d')) 
      return msg.d; 
     else 
      return msg; 
     } 
}); 

Выглядит довольно невинно. а?

+0

В нем говорится, что utf-9 ...? –

+0

Это была опечатка, я ее исправил. –

-1

не нужно делать msg.responseText. Сам msg является ответомTExt

+0

Хм ... Хорошо, как я сказал, что запрос терпит неудачу. В функции ошибки msg имеет свойство responseText. Если это удастся, у него его не будет. –

0

Если вы пытаетесь извлечь HTML-код с сервера, почему вы указываете dataType: 'text'? Какое содержимое ContentType отправляет ваше действие? Похоже, что существует некоторая несогласованность между заголовком ContentType, который сервер отправляет, и фактическим контентом.

+0

Я тоже пробовал contentType HTML. В конечном итоге я использовал текст, потому что это один contentType, который не должен анализироваться. –

Смежные вопросы