Javascript с использованием ajax jquery и json не работает с IE или chrome help! - PullRequest
1 голос
/ 17 марта 2011

У меня есть этот код, который игнорируется, т. Е. Я установил оповещения по всему коду, и я точно определил ошибку, являющуюся вызовом ajax

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
        <title>Website</title>
<script type="text/javascript">

         $.ajax({
                url: "http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo",
                                        success: function(data){
                                            ...code
        }
        });
</script>..body.. etc...

Код отлично работает на Firefox .. Однако $ .ajax ({}); вызов полностью игнорируется в IE и Chrome .. Кто-нибудь знает почему? Заранее спасибо ...

Ответы [ 5 ]

4 голосов
/ 17 марта 2011

Вам не хватает <script> тегов и, знаете ли, jQuery? Кроме того, поскольку это межсайтовый запрос, убедитесь, что вы правильно обрабатываете его как jsonp.

Без публикации вашего кода я думаю, что это лучшее, что мы можем сделать.

2 голосов
/ 17 марта 2011

Я могу только добавить к тому, что Майкл Харен уже сказал, что вы получаете по этому URL:

{"status":{"message":"the daily limit of 30000 credits demo has been exceeded. Please throttle your requests or use the commercial service.","value":18}}

0 голосов
/ 16 января 2013

Единственное, что мешает работе ajax в Chrome / Safari, но все же позволяет ему работать в Firefox, - это пропуск поля dataType команды ajax.Например:

$.ajax({
    type: 'Get',
    url: "http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo",
    success: function(data){
        var jsonArray = jQuery.parseJSON(data);
        alert(jsonArray.status.message);
    }
});

выведет элемент value массива JSON, возвращенный с этого URL ONLY , если он запущен в Firefox.Чтобы этот ajax работал в Chrome, вы должны включить поле dataType и удалить jQuery.parseJSON следующим образом:

$.ajax({
    type: 'Get',
    url: "http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo",
    dataType: 'json',
    success: function(data){
        var jsonArray = data;
        alert(jsonArray.status.message);
    }
});

Если это не указано или вы попытаетесь сделать это иначе,появляются, как он пропускает ваш AJAX все вместе.Я надеюсь, что это решит вашу проблему.

0 голосов
/ 17 марта 2011

Вы должны указать добавить &callback=? в конце URL.

http://api.geonames.org/earthquakesJSON?...&username=demo&callback=?
0 голосов
/ 17 марта 2011

Как указывалось, вам не хватает тегов сценария, а также фактического пути к файлу jquery, и вам нужно обернуть ваш вызов ajax документом, готовым, так что ...

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> // Latest jquery from google
<script type="text/javascript">
     $(function() {
        // -- Your Code Here

     });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...