2017-02-06 2 views
1

У меня есть веб-страница, в которой используется Http-клиент Axios. На моей веб-странице я получаю свое местоположение, используя функцию browser's geolocation. Когда мое местоположение будет получено, я хочу отправить это местоположение вместе с другими данными. Чтобы сделать это, я построил объект данных, как это:Axios - Отправка вложенного объекта JSON

navigator.geolocation.getCurrentPosition(
    function(position) { 
    var data = { 
     id: 1, 
     user:'me', 
     location: position 
    }; 
    }) 
; 

затем я пытаюсь отправить данные через Аксиос так:

axios.put('/my-endpoint', data, options) 
    .then(function(res) { 
     console.log('success'); 
     console.log(res); 
    }) 
;  

я получаю успешный ответ от этого запроса. Однако это ложный позитив. Когда я смотрю на журналы, это странно. Я вижу, что свойство location является пустым объектом. Итак, я сделал console.log в браузере, и я вижу, что location правильно установлен. Но когда я отправляю его через Fiddler, я замечаю, что его там нет. Это просто пустой объект, когда он проходит через провод. Как?

Я подозреваю, что есть какая-то настройка или что-то еще, что я должен сделать, чтобы отправить вложенный объект JavaScript по сети. Но я ничего не вижу. Что я делаю не так? Я сделал базовый JSFiddle here с этим кодом.

ответ

1

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

+0

переменные данные находятся в области. Он выглядит вне сферы действия из-за того, как я сформулировал вопрос. Но в моем фактическом коде вызов 'axios' происходит сразу после строки' var data'. –

+0

Это только для свойства 'location'? Проходят ли 'user' и' id' в порядке? –

+0

Это только свойство 'location', которое показывает это поведение. 'user' и' id' проходят нормально. –

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