Показать сообщение отдельно
  #1 (permalink)  
Старый 10.01.2014, 22:04
Новичок на форуме
Отправить личное сообщение для alexqill Посмотреть профиль Найти все сообщения от alexqill
 
Регистрация: 10.11.2013
Сообщений: 3

Самописный виджет не подключается
Приветствую, подскажите уже просто голову сломал, сначало бился чтобы подцепить json с api btc-e ('https://btc-e.com/api/3/ticker/'), в итоге после долгих скитаний по просторам понял что надо мутить прокси, в итоге получилось как-то так:
<?php

function getSslPage($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

echo getSslPage('https://btc-e.com/api/3/ticker/'.$_GET['pair']);

?>


Таким образом я избавился от проклятой "No 'Access-Control-Allow-Origin' header is present on the requested resource."

После этого всё довольно успешно заработало на хосте где располагается - widget.cryptools.ru однако при попытке добавить его на другой домен, путём вписывания:
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
	<script type="text/javascript" src="http://widget.cryptools.ru/widget.js"></script>
	<script>
	initCW('btc_usd-btc_rur-btc_eur-ltc_btc-ltc_usd-ltc_eur-ltc_rur-nmc_btc-nmc_usd-nvc_btc-nvc_usd-usd_rur-eur_usd-trc_btc-ppc_btc-ppc_usd-ftc_btc-xpm_btc');
	</script>


так же где угодно добавить:
<div id="widget"></div>


Сам widget.js ('http://widget.cryptools.ru/widget.js'):
var switcher = 0;
var length = 0;
var setPair = '';

function initCW(pair) {
	setPair = pair;
	getCWData(setPair);
	setInterval(function(event) {
		update();

	}, 10000);
}

function update() {
	getCWData(setPair);
	
}


function getCWData(pair) {
	$.getJSON('http://widget.cryptools.ru/proxy.php?pair=' + pair, function(data) {
		var jsonData = $.map(data, function(val, key) {
			return { currency: key, price: val };
		});

		drawCW(jsonData);
		clicker();
	});
	
} 

function drawCW(data) {
	var currency = data[switcher]['currency'].split('_');
	length = data.length;
	
	$('#widget').html('<div id="widget_block"><div id="widget_currency_0"></div><div id="widget_currency_1"></div><div id="widget_price_last"></div><div id="widget_price_high"></div><div id="widget_price_low"><a>LOW</a><br></div></div>');
	$('#widget_currency_0').html(currency[0]);
	$('#widget_currency_1').html(currency[1]);
	$('#widget_price_last').html(data[switcher]['price']['last']);
	$('#widget_price_high').html('<a>HIGH</a><br>' + data[switcher]['price']['high']);
	$('#widget_price_low').html('<a>LOW</a><br>' + data[switcher]['price']['low']);
	
}

function clicker() {
	$('#widget_block').click(function(){
		if (switcher >= length-1) {
			switcher = 0;
		} else {
			switcher++;
			
		}
		update();
	});
}


Теперь при попытке встроить виджет на другом домене, получаю ту же ошибку что и раньше когда не было proxy.php

XMLHttpRequest cannot load http://widget.cryptools.ru/proxy.php?pair=btc_usd-btc_rur-btc_eur-ltc_btc-l…sd-nvc_btc-nvc_usd-usd_rur-eur_usd-trc_btc-ppc_btc-ppc_usd-ftc_btc-xpm_btc. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://btcalarm.com' is therefore not allowed access.


Вообщем голову уже сломал, может туплю в чём дико по незнанию...
Ответить с цитированием