Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.03.2015, 21:45
Интересующийся
Отправить личное сообщение для VVi3ard Посмотреть профиль Найти все сообщения от VVi3ard
 
Регистрация: 24.03.2015
Сообщений: 10

Получить JSON с другого домена и отобразить на странице.
Добрый день, делаю виджет для Win7 сам по себе виджет это обычная HTML страничка.

по ссылке: http://tsw.ru.forexprostools.com/api...6&timeframe=60
возвращается json.

я для теста сделал в блокноте страничку и в ней написал код:

<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>


<script language="JavaScript">

function Refresh(){
$.get("http://tsw.ru.forexprostools.com/api.php?action=refresher&pairs=2186&timeframe=60",
ParseAnswer(data));
};

function ParseAnswer (data)
{data = $.parseJSON(data); $("#question").text(data.summaryLast); }
</script>

</head>

<body onLoad="Refresh()">

</body>

</html>

Открываю ее в Chrome и получаю в консоли ошибку:
XMLHttpRequest cannot load http://tsw.ru.forexprostools.com/api...6&timeframe=60. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Подскажите как правильно сделать?

Вообще цель получить HTML который при открытии отобразит содержимое "summaryLast" и будет каждые 10 секунд обновлять страничку.
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2015, 21:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от VVi3ard
Подскажите как правильно сделать?
Не предусмотрели владельцы forexprostools.com доступа из Браузера. Не выставили спец-заголовок.
Положи на сервер свой php-скрипт, который будет делать запрос и отдавать результат. И из js обращайся к нему.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2015, 22:00
Интересующийся
Отправить личное сообщение для VVi3ard Посмотреть профиль Найти все сообщения от VVi3ard
 
Регистрация: 24.03.2015
Сообщений: 10

Сервера нет Да и настраивать сервер ради одной цифры на страничке как то не хочется.

Может быть можно как то не через ajax я в html не сильно разбираюсь... ?
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2015, 22:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

VVi3ard,

<!DOCTYPE HTML>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            function Refresh() {
                $.get("http://tsw.ru.forexprostools.com/api.php?action=refresher&pairs=2186&timeframe=60",
                    ParseAnswer);
            };
            Refresh()
            function ParseAnswer(data) {
                data = $.parseJSON(data);
                $("#question").text(data["2186"]["summaryLast"]);
            }
            window.setInterval(Refresh, 10000)
        });
    </script>
</head>
<body>
    <div id="question"></div>
</body>
</html>

Последний раз редактировалось рони, 24.03.2015 в 22:19.
Ответить с цитированием
  #5 (permalink)  
Старый 24.03.2015, 22:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

рони, не будет это работать, нужен JSONP.

VVi3ard, виджет для Win, тогда нафик вам нужны хромы и прочие?
Ответить с цитированием
  #6 (permalink)  
Старый 24.03.2015, 23:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

laimas,
работает в ie,если не с инета.
Сообщение от laimas
нужен JSONP
можно поподробнее ?

и наконец танец с бубнами
<!DOCTYPE HTML>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>jQuery.ajax = function (d) {
    var b = location.protocol,
        e = RegExp(b + "//" + location.hostname),
        f = "http" + (/^https/.test(b) ? "s" : "") + "://query.yahooapis.com/v1/public/yql?callback=?";
    return function (a) {
        var c = a.url;
        if (/get/i.test(a.type) && !/json/i.test(a.dataType) && !e.test(c) && /:\/\//.test(c)) {
            a.url = f;
            a.dataType = "json";
            a.data = {
                q: 'select * from html where url="{URL}" and xpath="*"'.replace("{URL}", c + (a.data ? (/\?/.test(c) ? "&" : "?") + jQuery.param(a.data) : "")),
                format: "xml"
            };
            !a.success && a.complete && (a.success = a.complete, delete a.complete);
            var b = a.success;
            a.success = function (a) {
                b && b.call(this, {
                    responseText: (a.results[0] || "").replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, "")
                }, "success")
            }
        }
        return d.apply(this, arguments)
    }
}(jQuery.ajax);</script>
    <script>
        $(document).ready(function() {
            function Refresh() {
                 $.ajax({
                         url: 'http://tsw.ru.forexprostools.com/api.php?action=refresher&pairs=2186&timeframe=60',
                         type: 'GET',
                         success: ParseAnswer
            })};
            Refresh()
            function ParseAnswer(data) {
            data =  $('<div/>',{'html': data.responseText}).text();
            data = JSON.parse(data);
            $("#question").text(data["2186"]["summaryLast"]);;
            }
            window.setInterval(Refresh, 10000)
        });
    </script>
</head>
<body>
    <div id="question"></div>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 24.03.2015, 23:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

https://ru.wikipedia.org/wiki/JSONP

В jQuery нужно указать этот тип данных.

А вообще ведь под систему, и хватило бы ресурсов IE и одного iframe.
Ответить с цитированием
  #8 (permalink)  
Старый 24.03.2015, 23:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

>работает в ie,если не с инета.

Ну так можно и так тогда, попробовать выполнить это:

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

Но зачем это все?
Ответить с цитированием
  #9 (permalink)  
Старый 24.03.2015, 23:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

laimas,
то есть можно сделать рабочий код на jQuery без танцев с бубнами?
если да то можно ли увидеть код?
сам я не смог применить JSONP к данному случаю
Ответить с цитированием
  #10 (permalink)  
Старый 24.03.2015, 23:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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

Ну ведь пишется виджет для системы Win, то смысл в поддержке браузеров? Если не знать какого либо языка серьезного, ну можно использовать VBS. Не зная его, ну можно JS + IE + IFRAME как контейнер, и без проблем, зачем выпендриваться.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить json в onComplete? imedia Элементы интерфейса 2 07.12.2014 20:26
Получить API с другого сайта Sllexa AJAX и COMET 4 08.09.2014 10:24
Получить данные JSON без jQUERY strongest Javascript под браузер 17 19.01.2014 20:07
JSON - отобразить данные таблицы oracle / mssql / mysql ecivgamer Javascript под браузер 3 14.11.2012 18:17
Получить данные через AJAX и отобразить на странице skiller AJAX и COMET 2 17.06.2011 11:09