Мое приложение Google Maps по-прежнему не работает. Я все ближе и ближе к концу. В этот момент моя функция успеха моей функции ajax не запускается. Я думаю, что с синтаксическим анализом данных что-то не так, ... я перепробовал много вещей, но ничего не работает .. Вот мой контроллер и html / ajax / javascript код.

<!DOCTYPE html>
<html>
    <head>
        <title>Simple Map</title>
        <meta name="viewport" content="initial-scale=1.0">
        <meta charset="utf-8">
        <style>
            html, body {
                height: 100%;
                margin: 0;
                padding: 0;
            }
            #map {
                height: 100%;
            }
        </style>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
        <script src="http://maps.google.com/maps/api/js?key=AIzaSyAurjHVf3PDdmkha_9kHBC7b-Go0CXbWPI&v=3.2&sensor=false"></script>
    </head>
    <body>
        <div id="map"></div>
        <script type="text/javascript">
            var map;https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js
            var data;
            initMap();
            function initMap() {
                map = new google.maps.Map(document.getElementById('map'), {
                    center: {lat: -34.397, lng: 150.644},
                    zoom: 8
                });


                httpCall();
            }

            function httpCall($http) {
                $.ajax({
                    type: 'GET',
                    url: '<?php echo site_url('User/marks') ?>',
                    data: data,
                    dataType: "json",
                    complete: function (data) {
                        alert(data);
                        for (var i = 0, len = data.length; i < len; ++i) {
                            var marker = new google.maps.Marker({
                                position: {
                                    lat: parseFloat(data[i].lat),
                                    lng: parseFloat(data[i].lng)
                                },
                                map: map
                            });
                        }
                    }
                })
            }

        </script>

    </body>
</html>

Контроллер:

function marks() {
    $data = json_encode($this->user_model->get_marks());
    return $data;
}

Сеть в Firefox:

http://i65.tinypic.com/2n1crqe.png

-1
user5488652 14 Дек 2015 в 12:47

4 ответа

Лучший ответ

Вы должны прочитать документацию для вашего complete обратного вызова. Для результата нет аргументов:

Завершить Тип: Функция (jqXHR jqXHR, String textStatus)

http://api.jquery.com/jquery.ajax/

Вы должны использовать обратный вызов success.

Тип успеха: Функция (Все данные, Строка textStatus, jqXHR jqXHR)


Изменить: вместо return data на echo data.

0
kemicofa ghost 14 Дек 2015 в 10:15

У вас не было Типа контента и Успеха в вашем запросе ajax. Вот обновленный код твоего

            function httpCall($http) {
            $.ajax({
                type: 'GET',
                url: '<?php echo site_url('User/marks') ?>',
                contentType: "application/json; charset=utf-8",
                data: data,
                dataType: "json",
                success: function (data) {
                    alert(data);
                    for (var i = 0, len = data.length; i < len; ++i) {
                        var marker = new google.maps.Marker({
                            position: {
                                lat: parseFloat(data[i].lat),
                                lng: parseFloat(data[i].lng)
                            },
                            map: map
                        });
                    }
                }
            })
        }

Как только этот запрос будет выполнен успешно, вы получите данные в оповещении.

0
Naveen - நவீன் 14 Дек 2015 в 11:21

Ваш код отсутствует ниже кода

"contentType": "application / json; charset = utf-8",

В вызове ajax.

Пожалуйста, добавьте contenttype в $ .ajax и попробуйте вызвать сервис

0
Madhusudan Nagar 14 Дек 2015 в 11:09
$.ajax({
  url: 'mypage.html',
  success: function(){
    alert('success');
  },
  error: function(){
    alert('failure');
  }
});

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

0
M.James 14 Дек 2015 в 09:56