Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2013, 19:56   #11
Glowworm
Пользователь
 
Аватар для Glowworm
 
Регистрация: 26.10.2011
Сообщений: 67
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Я конечно понимаю, что у вас тут своя атмосфера, но ответ от http://open.mapquestapi.com/nominati...&lon=-0.162714
Код:
{
    "place_id": "91363621",
    "licence": "Data \u00a9 OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright",
    "osm_type": "way",
    "osm_id": "164536323",
    "lat": "50.998518",
    "lon": "-0.1666182",
    "display_name": "Deaks Lane, Ansty Staplefield, Mid Sussex, West Sussex, South East England, \u0410\u043d\u0433\u043b\u0438\u044f, \u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f, European Union",
    "address": {
        "road": "Deaks Lane",
        "suburb": "Ansty Staplefield",
        "city": "Mid Sussex",
        "county": "West Sussex",
        "state_district": "South East England",
        "state": "\u0410\u043d\u0433\u043b\u0438\u044f",
        "country": "\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f",
        "country_code": "gb",
        "continent": "European Union"
    }
}
Это JSON-объект. Его нужно привести к объекту JavaScript с помощью JSON.parse(json_obj).
Прочитайте как составляются ajax запросы и не пишите больше таких глупостей в src.

Прочла про запросы, попробовала простенький пример, я сделала все так как там написано, но вообще никакой реакции на мой запрос
<!doctype html>
<html lang="ru">
<head>
<title>Прогноз погоды</title>
</head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$( function() {
$('#getGeocod').click( function() {
var data = { lat:"51 .521435", lon:"-0.162714" };
$.get( "http://open.mapquestapi.com/nominatim/v1/reverse.php", data, success, "json" );
} );
function success( geocodData ) {
var geocod = geocodData.place_id + " страна " + geocodData.lat;
alert( geocod );
}
} );
</script>
</head>
<body>
<button id="getGeocod">Геокодирование</button>
</body>
</html>
Что я не так сделала?
Glowworm вне форума Ответить с цитированием
Старый 07.04.2013, 20:34   #12
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Код:
var data = { lat:"51 .521435", format:"json", lon:"-0.162714" };
Формат не указали
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 07.04.2013, 20:46   #13
Glowworm
Пользователь
 
Аватар для Glowworm
 
Регистрация: 26.10.2011
Сообщений: 67
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Код:
var data = { lat:"51 .521435", format:"json", lon:"-0.162714" };
Формат не указали
Я указала формат в $get , но если даже указать его в параметрах ничего не выводится.
Glowworm вне форума Ответить с цитированием
Старый 07.04.2013, 21:40   #14
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Все работает.
Код:
<!doctype html>
<html lang="ru">
<head>
<title>Прогноз погоды</title>
</head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$( function() {
$('#getGeocod').click( function() {
var data = { lat:"51 .521435", lon:"-0.162714", format:"json" };
$.get( "http://open.mapquestapi.com/nominatim/v1/reverse.php", data, success );
} );
function success( geocodData ) {
var geocod = geocodData.place_id + " страна " + geocodData.lat;
alert( geocod );
}
} );
</script>
</head>
<body>
<button id="getGeocod">Геокодирование</button>
</body>
</html>
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 08.04.2013, 00:28   #15
Glowworm
Пользователь
 
Аватар для Glowworm
 
Регистрация: 26.10.2011
Сообщений: 67
По умолчанию

Да, правильно, спасибо, просто че то долго выводилось, зависло все, а не знаете долго ли будет обрабатываться 250-500 запросов?
Glowworm вне форума Ответить с цитированием
Старый 08.04.2013, 15:13   #16
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
Прочитайте как составляются ajax запросы и не пишите больше таких глупостей в src.
Собственно это не совсем глупость, иногда пишут прямо в src скрипта и вот почему:

Кроссдоменный запрос к mapquestapi.com работает потому, что mapquestapi.com отправляет в ответе заголовок "Access-Control-Allow-Origin: *", т.е. явно разрешает дёргать данные AJAX'ом с любого домена. Если такого заголовка нет — браузер ругнётся на политики безопасности и вернёт ошибку.

Так вот если на сервере нет возможности настроить заголовки, а данные на другой сайт позарез надо отдавать, применяют финт ушами под названием JSONP: в src скрипта пишут http://example.com/data.json, а сервер возвращает JSON, но завёрнутый в вызов функции myfunction({...}). Таким образом скрипт подключается как обычный ресурс (который можно тянуть с любого домена), а данные получит заранее объявленная на вызывающей стороне myfunction(). Такая фича есть в API твиттера, например: http://search.twitter.com/search.jso...ack=myfunction.

Кстати, jQuery разруливает JSONP-запросы прозрачно для пользователя (сам создаёт тег <script>, функцию получения данных, уничтожает тег <script>), если видит в URL "callback=?" или явно указанный тип запроса "JSONP".
пыщь
JTG вне форума Ответить с цитированием
Старый 08.04.2013, 19:33   #17
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

не было времени вникать в API этого сервиса. Как по мне - это лишняя нагрузка на сервер..
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 08.04.2013, 19:55   #18
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

сам термин ajax появился раньше чем XMLHttpRequest, и делали его в том числе с использованием тега <script>
а вот с появлением XMLHttpRequest ajax стали применять чуть ли не везде, что в общем-то правильно
eval вне форума Ответить с цитированием
Старый 06.05.2013, 00:24   #19
Glowworm
Пользователь
 
Аватар для Glowworm
 
Регистрация: 26.10.2011
Сообщений: 67
По умолчанию

Код:
function codeLatLng(a,b) {
    var ansv;
  $( function() {
var data = { lat:a, format:"json", lon:b };
$.get( "http://open.mapquestapi.com/nominatim/v1/reverse.php", data, success, "json" );

function success( geocodData ) {
var geo=geocodData.display_name;
if (geo != undefined) {
ansv = geo;
}
}
} );
  }
Как мне вернуть значение переменной ansv в основной блок программы из этой процедуры, пробовала в блоке условия return, но ничего не выводится
Glowworm вне форума Ответить с цитированием
Старый 07.05.2013, 15:27   #20
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Никак, забудьте про синхронные вызовы. $.get возвращает управление сразу (иначе браузер бы висел во время запроса), success будет вызвана позже, после получения результата. Или не будет, если произошла ошибка.

Участок кода, который должен работать с ansv, заверните в функцию, вызывайте её внутри колбека success.
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
КАК ПЕРЕДЕЛАТЬ ФОРМАТ mp4 В ФОРМАТ 3gp,MPEG4 kamalruslan Софт 4 20.08.2015 16:16
C++ JSON qip2005 Visual C++ 2 05.11.2012 19:48
Qt + Json Lindemann66 Qt и кроссплатформенное программирование С/С++ 0 18.08.2011 15:26
Json парсер Carbon Общие вопросы по Java, Java SE, Kotlin 3 02.06.2011 22:59
JSON и C++Builder s2dent Общие вопросы C/C++ 0 15.06.2010 14:46