Ajax jquery не может передавать параметры

Я пытаюсь создать mashup-приложение, которое получает вывод json из спокойного веб-сервиса. приложение mashup извлекает данные о широте и долготе из ответа json, а затем указывает их на встроенную хорошую карту.

<html>
<form> 
  Post Code:<br> 
  <input type = "text" id = "postcode"><br> 
  <button onclick = "getdata()">Submit</button>
</form>

<h1>Location on Google Map</h1>

<div id = "map" style = "width:400px;height:400px;background:yellow"></div>
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
  function getdata() {
    var value1 = $("input#postcode").val();
    var settings = {
      "async": true,
      "crossDomain": true,
      "url": "http://localhost:8080/getlocation?postcode = " + value1,
      "type": "POST",
      "method": "GET"
    }

    $.ajax(settings).done(function(response) {
      data = JSON.parse(response);
      console.info(data['4000']['Latitude']);
      var lat = data['4000']['Latitude'];
      var lng = data['4000']['Longitude'];
      init(lat, lng);
    });

    function init(lat, lng) {
      latlng = new google.maps.LatLng(lat, lng);
      var mapOptions = {
        center: new google.maps.LatLng(lat, lng),
        zoom: 20,
        mapTypeId: google.maps.MapTypeId.HYBRID
      }
      var map = new google.maps.Map(document.getElementById("map"), mapOptions);
      var customMarker = new google.maps.Marker({
        position: latlng,
        map: map,
      });
    }
  }
</script>

<script src = "https://maps.googleapis.com/maps/api/js?callback=getdata"></script>
</html>

Однако я не могу передать другие значения параметрам «почтовый индекс» в «http: // локальный: 8080 / getlocation? почтовый индекс =». Передаваемые значения должны быть такими, как 4010,4011 и т. д.

Пожалуйста, позаботьтесь о правильном форматировании кода в ваших вопросах. Честно говоря, это была неразбериха до того, как я ее отредактировал.

Rory McCrossan 25.09.2018 12:31
"type": "POST", method": "GET" Type - это псевдоним метода для старых версий jQuery. Вы должны удалить это.
Mark Baijens 25.09.2018 12:34

удалено. все еще не работает

Piush Goutam 25.09.2018 12:36

@MarkBaijens, основная проблема для меня. Когда я передаю что-то как url: "локальный: 8080 / getlocation? почтовый индекс = 4010", это работает. однако я хочу передать значения параметра, взятые из текстового поля, как написано в коде

Piush Goutam 25.09.2018 12:38

@PiushGoutam Вот почему я поставил это как комментарий. Не решит вашу проблему, но у вас определены как POST, так и GET. Вы не должны этого делать.

Mark Baijens 25.09.2018 12:40

Получаете ли вы заметные ошибки? Обычно, когда вы анализируете данные через ajax, вы просто определяете метод, а затем переходите к его извлечению в соответствии с любым методом, который вы используете. Вам не нужно анализировать его в URL-адресе, поскольку вы уже определили метод, который используете, и относительно того, какой это URL-адрес.

Martin 25.09.2018 13:32

По сути, вы определяете свой метод, GET / POST, и определяете URL-адрес, по которому будут анализироваться данные. Если вы используете метод GET, вам не придется вручную связывать переменную с URL-адресом, поскольку переменная уже будет проанализирована как определенный метод, если это имеет смысл.

Martin 25.09.2018 13:34

переменная, которую я пытаюсь проанализировать, является ключом или ссылочным значением для вывода типа json из RESTful api, размещенного локально

Piush Goutam 25.09.2018 15:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
8
53
1

Ответы 1

Я думаю, это потому, что ваш <script src = "https://maps.googleapis.com/maps/api/js?callback=getdata"></script> запускается ПОСЛЕ вашего пользовательского скрипта. API карт Google должен быть объявлен ПЕРЕД вашим кодом. Поместите его над тегами <script>, содержащими пользовательский код.

Другие вопросы по теме