Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить значение с другого домена (https://javascript.ru/forum/misc/42125-poluchit-znachenie-s-drugogo-domena.html)

natureproj 14.10.2013 03:59

Получить значение с другого домена (Решено!)
 
Доброго времени суток, такая задача:
Есть скрипт на одном домене и есть пустая страница, лишь с одним числом, на другом домене.
Как можно получить это число в скрипт, записав его в переменную?
Всем ответившим +

ksa 14.10.2013 08:42

Цитата:

Сообщение от natureproj
и есть пустая страница, лишь с одним числом

Есть возможность коррекции этой страницы?

ksa 14.10.2013 08:46

На данный момент есть некие варианты кроссдоменных запросов...
http://habrahabr.ru/post/114432/
http://habrahabr.ru/post/87826/
http://slyweb.ru/jquery/cross-domain-ajax/

natureproj 14.10.2013 15:10

я не понял вопроса, какой коррекции? Кем коррекции? Там будет просто логин пользователя.
Вот, к примеру использую вот этот код
var client = new XMLHttpRequest();
client.open("GET", "http://moisait.su/?tmpl=login")
client.onreadystatechange = function() {alert('Работает зпрос!')}
client.send()

Запрос работает! Но что возвращается? Как мне вернуть в переменной то что находится на странице?(а там просто логин на белом листе)

ksa 14.10.2013 16:22

Цитата:

Сообщение от natureproj
Как мне вернуть в переменной то что находится на странице?

Так это в букваре написано...

client.onreadystatechange = function() {
   if (client.readyState==4 && client.status==200)
      alert(client.responseText);
   };
}

ksa 14.10.2013 16:24

Цитата:

Сообщение от natureproj
а там просто логин на белом листе

Если запрос кроссдоменный этого мало... Там заголовок должен быть специальный...

natureproj 14.10.2013 17:20

ок, без проблем, какой заголовок? Можно с примером, как должна выглядеть страница с логином и код на js для получения логина.

ksa 14.10.2013 18:34

natureproj, я тебе ссылки выше для чего давал? :)

http://javascript.ru/forum/misc/4212...tml#post276314

ksa 14.10.2013 18:39

Цитата:

Сообщение от natureproj
какой коррекции? Кем коррекции?

Можно "простую цифру" переделать в "скрипт" - он грузанется без проблем...

natureproj 14.10.2013 23:35

Да я прочитал. В первом посте что-то о теории, без практики,
второй: не совместим с хромом(куда я делаю расширение)
по третьему задал вопрос:
Цитата:

Сообщение от natureproj (Сообщение 276380)
Вот, к примеру использую вот этот код
var client = new XMLHttpRequest();
client.open("GET", "http://moisait.su/?tmpl=login")
client.onreadystatechange = function() {alert('Работает зпрос!')}
client.send()

Запрос работает! Но что возвращается? Как мне вернуть в переменной то что находится на странице?(а там просто логин на белом листе)


Deff 15.10.2013 00:21

natureproj,
ССылку на страницу с примером откуда считывать данные

natureproj 15.10.2013 03:12

да какая разница. Я её могу изменить как угодно, поставив данные в блок и тд. К примеру http://moisait.su/?tmpl=login

ksa 15.10.2013 08:30

Цитата:

Сообщение от natureproj
по третьему задал вопрос

Так там и ответ есть! :)
Он начинается после слов
Цитата:

Для даного примера можно использовать следуюший php код:

BETEPAH 15.10.2013 08:54

Цитата:

Сообщение от natureproj
да какая разница. Я её могу изменить как угодно

Цитата:

Сообщение от ksa
Можно "простую цифру" переделать в "скрипт" - он грузанется без проблем...

сделайте файл-передатчик script.js в нем напишите:
var variable = 'значение';

подключите этот скрипт на приемнике:
<script src="http://moisait.su/script.js"></script>

и можно пользоваться значением без всяких ajax

natureproj 15.10.2013 14:59

Цитата:

Сообщение от BETEPAH (Сообщение 276504)
сделайте файл-передатчик script.js в нем напишите:
var variable = 'значение';

подключите этот скрипт на приемнике:
<script src="http://moisait.su/script.js"></script>

и можно пользоваться значением без всяких ajax

Мне нужно брать значения из базы данных того сайта. Так по-моему не получится организовать, верно?

BETEPAH 15.10.2013 15:10

Цитата:

Сообщение от natureproj
Так по-моему не получится организовать, верно?

Честно говоря я в серверных технологиях плаваю, поэтому не скажу, можно ли script.js динамически формировать из базы данных. Но мне кажется, в любом случае это будет костылём. Есть же json, xml в конце концов. Да и про заголовки для кроссдоменных запросов выше писали уже. Если доступ к админке источника есть, то можно без файла-скрипта обойтись

ksa 15.10.2013 16:36

Цитата:

Сообщение от natureproj
Я её могу изменить как угодно

Цитата:

Сообщение от natureproj
Мне нужно брать значения из базы данных того сайта. Так по-моему не получится организовать, верно?

Одно исключает другое... :)))

natureproj 15.10.2013 16:37

Уже перепробовал по-разному. Не выходит
Делаю на странице popup.js
$.ajax({
  		   url: 'http://moisait.su/?tmpl=login',
  		   success: function(data){
  				alert('успех! '+data);
  	   },
		   error: function(data){
				alert('фэил '+data);
		   },
	   type: "GET",
		   dataType: "text"
		});

на странице http://moisait.su/?tmpl=login :
header('Access-Control-Allow-Origin: http://moisait.su/?tmpl=login');
  	header('Expires: Mon, 26 Jul 1997 05:00:00 GMT' ); 
  	header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); 
  	header('Cache-Control: no-cache, must-revalidate'); 
  	header('Pragma: no-cache');
  	header('Content-Type: text/html; charset=utf-8;');

в итоге возвращает 'фэил object'

ksa 15.10.2013 16:41

Цитата:

Сообщение от BETEPAH
Честно говоря я в серверных технологиях плаваю, поэтому не скажу, можно ли script.js динамически формировать из базы данных.

На сервере, из БД - можно формировать все, что может быть записано в файл как текст. :)

Пример на CSP

<script language='cache' runat='server'>
   s val=<тут_вычисляется нужное_значение>
</script>
var variable = '#(val)#';

ksa 15.10.2013 16:43

Цитата:

Сообщение от natureproj
в итоге возвращает 'фэил object'

Смотри какие свойства у этого объекта и чему они равны...

natureproj 15.10.2013 19:39

Цитата:

Сообщение от ksa (Сообщение 276563)
На сервере, из БД - можно формировать все, что может быть записано в файл как текст. :)

Пример на CSP

<script language='cache' runat='server'>
   s val=<тут_вычисляется нужное_значение>
</script>
var variable = '#(val)#';

Да, я могу сформировать скрипт в php файле, но прикрепить этот файл, как скрипт с другого домена я не смогу.

ksa 15.10.2013 19:49

Цитата:

Сообщение от natureproj
но прикрепить этот файл, как скрипт с другого домена я не смогу

В чем именно выражается немощь?

Jsonp может помочь...

natureproj 16.10.2013 00:22

Цитата:

Сообщение от ksa (Сообщение 276583)
В чем именно выражается немощь?

Jsonp может помочь...

Прочитал, применить ничего не могу. Т.к мне нужно получать данные динамически.
я же не могу в файле login.js написать:
var a = <?php echo 'hello';?>;
alert(a);

ОлегА 16.10.2013 08:02

а что в консоли то пишет когда запрос отправляешь?

ksa 16.10.2013 08:28

Цитата:

Сообщение от natureproj (Сообщение 276609)
Прочитал, применить ничего не могу. Т.к мне нужно получать данные динамически.
я же не могу в файле login.js написать:
var a = <?php echo 'hello';?>;
alert(a);

Ты видать вообще не понимаешь серверных технологий... :(

natureproj 16.10.2013 14:47

с чего ты взял? Так мне поможет кто-нибудь с вопросом?

ksa 16.10.2013 15:00

Цитата:

Сообщение от natureproj
с чего ты взял?

Так это очевидно из твоего ответа! :)
http://javascript.ru/forum/misc/4212...tml#post276609

Цитата:

Сообщение от natureproj
Так мне поможет кто-нибудь с вопросом?

Тебе дали столько ссылок с примерами кроссдоменных запросов, с обработкой ответов... В инете и книгах все расписано...
В чем тебе еще помочь?

Предложи деньги - твою работу сделают вместо тебя...

natureproj 16.10.2013 16:37

Цитата:

Сообщение от natureproj (Сообщение 276609)
Прочитал, применить ничего не могу. Т.к мне нужно получать данные динамически.
я же не могу в файле login.js написать:
var a = <?php echo 'hello';?>;
alert(a);

Цитата:

Сообщение от ksa (Сообщение 276638)
Ты видать вообще не понимаешь серверных технологий... :(

Я же написал, что ТАК не получится сделать. В надежде получить ответ, как же все-таки получится сделать. При чем тут что я не понимаю?
Ты говоришь общими фразами, дал одну ссылку, я её прочитал, попробовал применить - не получилось. Если знаешь как сделать, неужели сложно просто написать?

ksa 16.10.2013 16:54

Цитата:

Сообщение от natureproj
Если знаешь как сделать, неужели сложно просто написать?

1. Я не телепат
2. С ПХП не работаю

natureproj 16.10.2013 17:05

Я нашел ошибку, вроде ответ получаю!
1)На странице moisait.ru/login.php
выводится любое значение, пусть "админ"
2) в manifest.json пишется
"permissions": [
"http://moisait.ru/*"
],
3) в скрипте куда нужно получить значение пишется:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://losttime2.su/?tmpl=login", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
alert(' Ответ: '+xhr.responseText); // собственно сам ответ! "admin"
}
}
xhr.send();
:victory:


Часовой пояс GMT +3, время: 16:02.