2013-09-19 4 views
0

У меня есть метод .getJSON. Он отлично работает в браузере IE и не работает в другом браузере, таком как Firefox и Chrome. Это код.getJSON метод не работает в Firefox и хром. Работает отлично в IE

<script src="Themes/Js/jquery_v_1.4.js"></script> 
<script type="text/javascript"> 
     var url; 
     $(document).ready(function() { 
      url = "http://192.168.0.171:8080/api/account"; 
      $('#btnSubmit').click(function (e) { 
       debugger; 
       $.getJSON(url, function callback(data, status, jqXHR) { 
        debugger; 
        $('#<%= ddlList.ClientID %>').append('<p>Name : ' + jqXHR.responseText + '</p>'); 
       }); 
      }); 
     }); 
</script> 

В Firefox и chrome управление не входит в функцию обратного вызова функции. Пожалуйста, посмотрите и посоветуйте мне.

+0

Почему такая старая версия JQuery? – Barmar

+0

Что «не работает»? Ошибка в консоли? Если нет, отправляется ли сетевой трафик? Возвращается ли оно/когда ожидается? – user2246674

+0

какая версия jquery подходит для этого. Пожалуйста, совет –

ответ

0

Я думаю, что оператор debugger; может поддерживаться только в IE. Попробуйте принимать его

+0

удалил отладчик; , Но бесполезно. Еще одна проблема –

+0

Просто, чтобы быть уверенным. Вы удалили их обоих, верно? Вы получаете сообщение об ошибке при отладке в chrome/FF? – TGH

+0

Да Я удалил отладчик; Но я не получаю сообщение об ошибке в chrome/FF. Управление не попадает внутрь функции обратного вызова (данные, статус, jqXHR) –

2

Если ваш код работает правильно с IE, но не с Chrome, вы можете попробовать любой из виртуальных серверов, доступных как Python сервер,

Выполните шаги

1.Run команда в соответствующей папку (в Linux)

питон -m SimpleHTTPServer

2.Open Chrome Browser и найдите локальный хост: 8000/файла

0

Теперь он отлично работает.

Я добавил следующий код в Web API Global.asax

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*"); 
     if (HttpContext.Current.Request.HttpMethod == "OPTIONS") 
     { 
      HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache"); 
      HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST"); 
      HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept"); 
      HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000"); 
      HttpContext.Current.Response.End(); 
     } 
    } 

Спасибо за поддержку всем ..

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