2013-05-03 4 views
1

Моего живого сайта HTML код находится в http://dev9.edisbest.com/PrinterManufacturers.htm?id=21Jquery AJAX Вопрос о браузере

Это прекрасно работает в FireFox и Chrome и показать Status: Success. Пожалуйста, скажите, почему это не работает на IE9.0?

Код выглядит следующим образом

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type='text/javascript'> 
function hello(id){ 
var seriesurl = "http://t2json.tgoservices.com/818746/PrinterManufacturers/"+id+"/PrinterSeries" 
    $.ajax({ 
     cache: false, 
     url: seriesurl 
    }).done(function(data, textStatus, jqXHR) {  
     $('#status').html(textStatus); 

    $.each(data.T2Json.PrinterSeries.Items, function(i,item) { 
    $("#content1").html('<a class="manufacturer" id="'+item.Id+'" href="#">'+ item.Name + '</a></br>'); 
    }); 
     }).fail(function(jqXHR, textStatus) { 
      $('#status').html(textStatus);  
      $('#content').html('(failed)'); 
     }) 
    } 

$(document).ready(function() { 

    function getParameter(param) { 
     var val = document.URL; 
     var url = val.substr(val.indexOf(param)) 
     var n=url.replace(param+"=",""); 
    } 

    $('#time').html(new Date); 
    $('#status').html(''); 
    $('#content').html(''); 
    $.ajax({ 
     cache: false, 
     url: $('#xhr_url').val() 
    }).done(function(data, textStatus, jqXHR) {  
     $('#status').html(textStatus); 

    $.each(data.T2Json.PrinterManufacturers.Items, function(i,item) { 
    $("#content").append('<a class="manufacturer" id="'+item.Id+'" onclick="hello('+item.Id+');" href="#">'+ item.Name + '</a></br>'); 
    }); 
    }).fail(function(jqXHR, textStatus) { 
     $('#status').html(textStatus);  
     $('#content').html('(failed)'); 
    }) 

    $('a .manufacturer').click(function(){ 
    }); 


}); 
</script> 
</head> 
<body> 
    <input id='xhr_url' style='width:600px;' type='text' value='http://t2json.tgoservices.com/818746/PrinterManufacturers'/> 
<div id='content1'></div> 
    <fieldset><legend>Time:</legend> 
    <div id='time'></div> 
    </fieldset> 
    <fieldset><legend>Status:</legend> 
    <div id='status'></div> 
    </fieldset> 
    <fieldset><legend>Content:</legend> 

    <div id='content'></div> 

    </fieldset> 
</body> 
+0

изменить '$ ('# время'). Html (новая дата);' to '$ ('# time'). Html (new Date()); ' –

+0

@MarkSchultheiss попробовал ту же ошибку – user580950

+0

Ошибка была выбрана -« Нет транспорта » –

ответ

0

Может быть, потому что первый $.ajax({ находится за пределами $(document).ready(? Это может быть условие гонки, когда в некоторых случаях jQuery не загружается до попытки запуска $.ajax.

Это также проблема:

var url = val.substr(val.indexOf(param)) 
var n=url.replace(param+"=",""); 

Это должно быть:

var url = val.substr(val.indexOf(param)), 
    n=url.replace(param+"=",""); 

или

var url = val.substr(val.indexOf(param)); 
var n=url.replace(param+"=",""); 
+0

Вы имеете в виду, я должен поставить функцию hello в $ (document) .ready? Я пробовал это, но его та же ошибка – user580950

+0

Пробовал оба метода, он не работает – user580950

+0

Чувак, я указываю, что с вашим сегментом кода существует несколько проблем. Возможно, что IE9 не нравится одному из них, но, скорее всего, вам придется исправить большинство из них. Я помог вам с двумя ... – BishopZ

-1

Это не имеет ничего общего с вашим кодом,

Вы пытаетесь сделать запрос JSON с перекрестным доменом и кажется, что вы пытаетесь использовать заголовки Access-Control-Allow-Origin для решения этой проблемы. Однако IE9 не соблюдает этот заголовок, вместо этого он ищет XDomainRequest См. Здесь: http://caniuse.com/#search=cors

+0

Ну его JsonP, поэтому нет вопросов о Cross Domain, не так ли? – user580950

+0

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

+0

@ user580950 Добавьте 'dataType:" jsonp ",' для принудительного jsonp для вызовов ajax –

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