Bitcoin Forum
August 02, 2024, 02:48:56 AM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: BTC-E.com public API и вызов из javascript  (Read 1435 times)
Dex (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
December 03, 2013, 09:34:13 AM
 #1

Добрый день!

Подскажите, вот есть у биржи апи:
https://btc-e.com/api/2/btc_rur/ticker

выдает JSON данные.

Вопрос, как можно получить эти данные из javascript на вебстранице?

Хром ругается, что сервер не выдаёт заголовок Origin, поэтому запрос сделан не будет
(пробовал со страницы с диска и полученную с хостинга).

Что-то посмотрел про JSONP, но API не делает обертку ни на json=, ни на callback=

Это у меня руки не из того места растут или в принципе через javascript и вебстраницу в Хроме вытащить нельзя?
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
December 03, 2013, 03:59:41 PM
 #2

На своем сервере сделай что-то типа :
Code: (php)
<?php echo file_get_contents('https://btc-e.com/api/2/btc_rur/ticker'); ?>
Или соригинальничай (может не сработать)
Code: (php)
<?php header('Location: https://btc-e.com/api/2/btc_rur/ticker'); ?>

p.s. осторожно с универсализацией этого примера, например не нужно запихивать адрес для редиректа в http запрос напрямую, либо контролировать его, лимитируя по списку, чтобы не было возможности DDOS-ить btc-e через ваш сервер.

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Dex (OP)
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
December 04, 2013, 03:44:46 PM
 #3

Не. Через php не нужно. В принципе это понятно как сделать.

Весь вопрос был именно в получении через javascript, например, через jQuery ($.getJSON).
Биржа не выдаёт Allow-Origin, поэтому браузер не хочет пропускать GET запрос со страницы.
Если пробовать через jsonp (добавляя callback=?), запрос проходит, но парсер jQuery спотыкается
на получаемом формате и тоже вываливается с ошибкой. Плюс сами данные приходят не как
application/json, а как text/html

Пока нашёл три способа:
1) Отключать в браузере проверку ориджина (через флаг -disable-web-security)
2) Использовать сторонние сервера по прокидыванию jsonp запросов (то, что ты предлагаешь, но общедоступное,
а не свой велосипед)
3) Поставить расширение для Хрома, которое перехватывает все запросы и добавляет заголовок Allow-Origin

Т.к. у меня Хром, пока пользуюсь третьим вариантом, как самым простым.
Но Хром не у всех, а в ФФ такой финт сделать не получится.

Всё ещё ищу решение.
Может проще в тикер поддержки биржи написать?
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!