Internet Explorer jQuery getJSON не работает - PullRequest
1 голос
/ 23 ноября 2011

я делаю небольшой скрипт, который получает некоторые данные из базы данных через php, используя метод getJSON jquery.

код как показано ниже:

$(document).ready(function(){

var id = userid;
$('#a-div').after('<div id="data"></div><input type="button" id="getdata" value="Get Data">');

       $('#getdata').click(function(){
        $.getJSON('http://mysite.com/data.php?id=' + id, function(data) {
           var notfound = data['notfound'];
           var user = data['user'];
           if(notfound == '1'){      
             $('#data').html("Not found");
           } 
           else{   
            $('#data').html("Found , user is "+ user);
           }
         });//end of getJSON
       });//end of click
 }); //end of document ready

Мой php-скрипт возвращает данные в формате JSON примерно так: Если данные найдены в базе данных -

{"notfound":"0","user":"john"}

Если данные НЕ найдены в базе данных -

{"notfound":"1","user":"none"}

Это прекрасно работает в Firefox, Google Chrome и Safari, просто прекратил работу в Internet Explorer (7,8,9) Кто-нибудь может мне помочь.

P / S Я пробовал несколько методов в других сообщениях, подобных этому, не работает. Как изменение типа контента META

Спасибо.

Ответы [ 4 ]

1 голос
/ 23 ноября 2011

Попробуйте поместить кнопку внутри из примерно так:

 $("body").append( /* markup for div and btn here */ );

... вместо использования after ().

0 голосов
/ 29 июля 2014

Это работает для меня- jQuery.support.cors = true;

Найти обсуждение http://jquery.10927.n7.nabble.com/jQuery-getJSON-response-not-working-with-IE-works-perfectly-in-firefox-safari-td81254.html

0 голосов
/ 23 ноября 2011

вы используете очень некрасивый код, после того, как тело неверно для записи любого HTML-контента, для этого вы должны добавить в тело любой div и добавить к нему свой код, и тогда этот код будет работать в IE

$(document).ready(function () {
    $('#anydiv').html('<div id="data"></div><input type="button" id="getdata" value="Get Data">');

    $('#getdata').click(function () {
        alert("asd");
        $.getJSON('/HowItWork/Index?id=' + 23, function (data) {
            var notfound = data['notfound'];
            var user = data['user'];
            if (notfound == '1') {
                $('#data').html("Not found");
            }
            else {
                $('#data').html("Found , user is " + user);
            }
        }); //end of getJSON
    }); //end of click
}); //end of document ready
0 голосов
/ 23 ноября 2011

Возможно, Internet Explorer занимает много времени, чтобы добавить HTML, попробуйте с живым

$('#getdata').live('click', function(){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...