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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2014, 13:58   #1
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию Запрос к удаленному серверу JavaScript

Здравствуйте!

Есть задача: разработать некое ПО, которое можно было бы запустить из браузера. Это ПО должно получать от удаленного сервера данные и выводить инфу на экран в виде скринсейвера.

Решила делать это в виде JS скрипта. Однако столкнулась с проблемой - не получается сделать запрос к стороннему серверу. Как можно решить эту проблему?

И попутно еще один вопрос. Возможно, существуют ещё какие-нибудь решения данной проблемы?
С учетом того, чтобы это решение могло работать в старых версиях IE на Windows XP.
No_Comments вне форума Ответить с цитированием
Старый 04.07.2014, 16:41   #2
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Используйте AJAX
ATL вне форума Ответить с цитированием
Старый 04.07.2014, 17:00   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
в старых версиях IE
Насколько старых? Можно и через <form> делать. Хотя ATL прав - Если есть возможность использовать Ajax, то его стоит попробовать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2014, 21:44   #4
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Цитата:
Сообщение от ATL Посмотреть сообщение
Используйте AJAX
Насколько я понимаю, запросы осуществляются с помощью XMLHttpRequest.

Я так пробовала. У возникала ошибка.
Сейчас не могу написать точно, какая ошибка, т.к. нет под рукой проекта.
Но в общих чертах там было что-то про права доступа. Мол, я со своего localhost не могу достучаться до удаленного сервера...

Можно еще попутно вопрос.

У меня есть API. В нему надо обращаться по средствам HTTP-запросов определенной структуры.
Так вот, запрос начинается не с метода GET или POST (или какой-то еще), а кастомный метод PREDICT. Так вообще можно HTTP-запросы строить? И как на такие запросы реагирует JS? Не ругается при отправке?

Последний раз редактировалось Stilet; 04.07.2014 в 21:49.
No_Comments вне форума Ответить с цитированием
Старый 04.07.2014, 21:49   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Но в общих чертах
Код и текст ошибки в студию. Иначе получишь ответ "в общих чертах". А точнее "ошибка в коде, отлаживай пошаговкой"
Цитата:
как на такие запросы реагирует JS? Не ругается при отправке?
Нет. Его метод open() (Аякса всмысле) поддерживает отправку любого метода:
Код:
XMLHttpRequest_Экземпляр.open("PREDICT",'Тут параметры запроса',true);
I'm learning to live...

Последний раз редактировалось Stilet; 04.07.2014 в 22:10.
Stilet вне форума Ответить с цитированием
Старый 04.07.2014, 22:00   #6
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код и текст ошибки в студию. Иначе получишь ответ "в общих чертах". А точнее "ошибка в коде, отлаживай пошаговкой"
Нет. Его метод open() (Аякса всмысле) поддерживает отправку любого метода:
Код:
XMLHttpRequest_Экземпляр.open("PREDICT",'Тут параметры запроса',true);
Я скину, обязательно!
И код предоставлю После выходных
No_Comments вне форума Ответить с цитированием
Старый 04.07.2014, 22:12   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
После выходных
Последнее время слово "после" для меня стало весьма сакрально...
Что ж. Подождем (как пел Игорек) твою... код.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.07.2014, 22:52   #8
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Цитата:
Но в общих чертах там было что-то про права доступа.
Наверное запрет на выполнение кросс-доменного запроса.

Для решения задачи подходят как нельзя кстати расширения для браузеров. Chromium'ы на мой взгляд представляют наиболее простой подход к разработке расширений.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 04.07.2014, 23:14   #9
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

создаёте 4 файла с указанными именами, затем заходите в хромиуме на страницу расширений (chrome://extensions/), включаете режим разработчика, жмёте "загрузить распакованное расширение", и указываете путь к папке с файлами.

Появится кнопка, при нажатии на которую открывается страница, с которой можно делать запросы на любые домены.

manifest.json:
Код:
{
  "name": "Test",
  "manifest_version": 2,
  "version": "1.0",
  "permissions": [
    "<all_urls>", "tabs"
  ],
  "browser_action": {
  },
  "background": {
    "scripts": ["bg.js"]
  }
}
bg.js:
Код:
chrome.browserAction.onClicked.addListener(function() {
    chrome.tabs.create(
        {
            url: chrome.runtime.getURL('index.html'),
            active: true            
        },
        function () {}
    );
});
index.js:
Код:
document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('btn').addEventListener('click', function() {
        var url = document.getElementById('url').value;
        
        var xhr = new XMLHttpRequest();
        xhr.open('GET', url, false);
        xhr.send(null);
        if(xhr.status == 200) {
            document.getElementById('answer').value = xhr.responseText;
        }
    });
});
index.html:
Код:
<html>
    <head>
        <title></title>
        <style>
            div {
                position: fixed;
                background-color: white;
                border: 1px solid black;
                top:0px;
                right: 0px;
                left: 0px;
                height: 26px;
            }
            textarea {
                margin-top: 30px;
                width: 100%;
                height: 100%;
            }
        </style>
        <script src="index.js"></script>
    </head>
    
    <body>
        <div>
            <input type=text id="url" />
            <button id="btn">Send Request</button>
        </div>
        <textarea id="answer"></textarea>
    </body>
</html>
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 05.07.2014, 11:16   #10
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Fenex, наверное рано рекомендовать писать плагин для браузера. Ещё непонятно что вообще происходит. Исходя из абстрактной информации, JS'a должно хватить: как минимум JSONP имеется.
ATL вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение к удаленному серверу spein PHP 7 25.03.2011 17:03
запрос SQL серверу S_Yevgeniy БД в Delphi 3 09.12.2009 12:15
WSDL и SOAP, Отправка запросов к удаленному серверу. Алориан PHP 2 22.06.2009 12:57
как подключится к удаленному серверу Interbase Konst48 БД в Delphi 5 07.11.2007 07:53