Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=9136370&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 04:34:27 2016
Кодировка: Windows-1251
[jquery] ajax и xml_parser - проблема с внешним url - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
CTEPBA000
enthusiast

Рег.: 02.02.2009
Сообщений: 365
Рейтинг: -79
  [jquery] ajax и xml_parser - проблема с внешним url
      12.12.2009 09:57
1

Задача: Нужно распарсить xml-документ http://www.roboxchange.com/xml/currlist.asp
То, что написано работает только, если в качестве урла подсунуть currlist.xml (предварительно скачивать приходится), а если указывать прямой (внешний) урл http://www.roboxchange.com/xml/currlist.asp, то ничего не работает :(
Вопрос: как побороть? Нужно чтобы принимала на вход внешние урлы


 файл rk_xml_int.js
 
code:
func/tion getXML(url){ $.ajax({ url: url, type: "GET", dataType: "xml", encoding:"utf-8", beforeSend: xmlStart, success: xmlSuccess, error: xmlError, complete: xmlComplete }); } function xmlStart(xhrInstance) { $("#xmlConsole").addClass("ajaxLoaderCSS"); //return true; } function xmlError(xhrInstance, message, optional) { $("#xmlConsole").html(message); } function xmlComplete(xhrInstance, status){ $("#xmlConsole").removeClass( "ajaxLoaderCSS" ); //return true; } function xmlSuccess(data, status){ parseXML(data); } function parseXML(xml){ alert('1'); var content = ''; $( xml ).find('item').each(function(){ var curr = $(this).find('curr').text(); var curr_name = $(this).find('curr_name').text(); content += 'curr - ' + curr + '<br />'; content += 'curr_name - ' + curr_name + '<br /><hr />'; }); $("#xmlConsole").html(content); }


Соответственно тестовая страничка
 
code:
<html> <head> <title>test robokassa int</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="rk_xml_int.js"></script> <script type="text/javascript"> $(function(){ getXML('http://www.roboxchange.com/xml/currlist.asp'); }); </script> </head> <body> <div id="xmlConsole"></div> </body> </html>


__No__

Рег.: 17.01.2005
Сообщений: 21062
Из: Внутренняя Монголия
Рейтинг: 6310
  Re: [jquery] ajax и xml_parser - проблема с внешним url [re: CTEPBA000]
      12.12.2009 11:04
2

А в jquery ajax умеет лазить на посторонние сайты?



Dixi.
fedechka

Рег.: 10.09.2004
Сообщений: 58783
Из: Отрадное
Рейтинг: 10953
  Re: [jquery] ajax и xml_parser - проблема с внешним url [re: CTEPBA000]
      12.12.2009 11:08
3

XMLHttpRequest в принципе не умеет работать с несвоим доменом. Сделано специально против XSS



без подписи
__No__

Рег.: 17.01.2005
Сообщений: 21062
Из: Внутренняя Монголия
Рейтинг: 6310
  Re: [jquery] ajax и xml_parser - проблема с внешним url [re: fedechka]
      12.12.2009 11:12
4

Ну вот, так сразу и выдал :)

Ссылка: http://en.wikipedia.org/wiki/Same_origin_policy
Хз что это: http://www.ajax-cross-domain.com/
JQuery: http://docs.jquery.com/Ajax/jQuery.getScript#urlcallback

Итого: проще настроить прокси. Но можно поисследовать код roboxchange вдруг да есть там нужный js.



Dixi.
SpellBuilder
Quantum Optic

Рег.: 07.12.2004
Сообщений: 607
Из: CZ
Рейтинг: 165
  Re: [jquery] ajax и xml_parser - проблема с внешним url [re: __No__]
      12.12.2009 20:54
2

Quote:

проще настроить прокси




Именно так. Например на первой страничке гуглится вот это web page. Простенькая php-proxy. Если тебе нужно брать только один файл, то можно ее подкрутить, чтобы запрашивать именно его. Также потратив еще 2-5 минут можно прикрутить простенькое кеширование, чтобы не постоянно гонять запросы на внешний сервер, а скажем не чаще 1 раза в час, или какая там тебе требуется периодичность обновления информации.

maloi
Зануда

Рег.: 09.05.2006
Сообщений: 6506
Из: $(pwd)
Рейтинг: 2880
  Re: [jquery] ajax и xml_parser - проблема с внешним url [re: SpellBuilder]
      12.12.2009 21:14
 

нафега только там php если апач сам умеет проксировать запросы?



Помни: убив анимешника, ты повышаешь скорость сети на 5%
CTEPBA000
enthusiast

Рег.: 02.02.2009
Сообщений: 365
Рейтинг: -79
  Re: [jquery] ajax и xml_parser - проблема с внешним url [re: __No__]
      12.12.2009 21:24
1

Quote:

проще настроить прокси.



именно так и сделал
немного повозился с curl и google вот, что получилось (вдруг кому пригодится)

 
code:
<?php $url = 'http://www.roboxchange.com/xml/rate.asp'; $request = '<robox.rate.req>'; //$request .= '<in_curr>WMZ</in_curr>'; $request .= '<out_curr>WMZ</out_curr>'; $request .= '<merchant_login>demo</merchant_login>'; $request .= '<out_cnt>900000</out_cnt>'; $request .= '</robox.rate.req>'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 4); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close')); $result = curl_exec($ch); header('Content-type: text/xml'); echo $result; curl_close($ch); ?>


bashtanov
спец по говядине

Рег.: 11.05.2007
Сообщений: 9569
Из: например
Рейтинг: 7070
  Re: [jquery] ajax и xml_parser - проблема с внешним url [re: fedechka]
      12.12.2009 21:36
 

В ответ на:

XMLHttpRequest в принципе не умеет работать с несвоим доменом.


cross-site ajax можно разрешить для выбранных сайтов в IE и FF

Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 1 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в