Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как вытянуть ссылку на картинку? (https://javascript.ru/forum/jquery/58359-kak-vytyanut-ssylku-na-kartinku.html)

yyyyuriyyyy 17.09.2015 17:35

Как вытянуть ссылку на картинку?
 
Вот есть 3 разных файла:
http://www.bing.com/HPImageArchive.a...&n=1&mkt=en-US http://www.bing.com/HPImageArchive.a...&n=1&mkt=en-US http://www.bing.com/HPImageArchive.a...&n=1&mkt=en-US

В них, каждый день обновляется информация (ссылка на картинку). Каким образом я могу вытянуть оттуда ссылку на картинку?

laimas 17.09.2015 17:55

С чужого домена нельзя, если только на нем не разрешен доступ. Поэтому сперва на свой сервер, а затем получить ссылку в нем.

yyyyuriyyyy 17.09.2015 18:25

Цитата:

Сообщение от laimas (Сообщение 388993)
С чужого домена нельзя, если только на нем не разрешен доступ. Поэтому сперва на свой сервер, а затем получить ссылку в нем.

Это невозможно. Этот скрипт постоянно обновляется. А доступ к этим файлам открыт. Но я не знаю как получить от туда информацию

laimas 17.09.2015 18:33

Цитата:

Сообщение от yyyyuriyyyy
Это невозможно. Этот скрипт постоянно обновляется.

То есть клиентом можно в любое время обратиться, а серверный скрипт дурак этого не в состоянии сделать? Не выдумывайте.

Если точно разрешен доступ, то получайте сперва файл посредством Ajax.

yyyyuriyyyy 17.09.2015 18:46

Цитата:

Сообщение от laimas (Сообщение 389013)
То есть клиентом можно в любое время обратиться, а серверный скрипт дурак этого не в состоянии сделать? Не выдумывайте.

Если точно разрешен доступ, то получайте сперва файл посредством Ajax.

Я пробую, не работает функция. Можете показать как правильно обращаться?

laimas 17.09.2015 19:01

Вы думаете я знаю какая функция не работает?

Вы пытаетесь получить доступ к чужому ресурсу, учите, что речь не о открытие файла браузером и дальнейшего его сохранения, что будет доступно, а средствами JS. Если этот ресурс не передает заголовок Access-Control-Allow-Origin разрешающий такой доступ, то ничего вы и не получите. Поэтому и нужен посредник - серверный скрипт, который по запросу клиента будет получать этот документ и возвращать клиенту нужное.

yyyyuriyyyy 17.09.2015 20:18

Цитата:

Сообщение от laimas (Сообщение 389018)
Вы думаете я знаю какая функция не работает?

Вы пытаетесь получить доступ к чужому ресурсу, учите, что речь не о открытие файла браузером и дальнейшего его сохранения, что будет доступно, а средствами JS. Если этот ресурс не передает заголовок Access-Control-Allow-Origin разрешающий такой доступ, то ничего вы и не получите. Поэтому и нужен посредник - серверный скрипт, который по запросу клиента будет получать этот документ и возвращать клиенту нужное.

Я попробовал сделать вот так:
jQuery.getFeed({
       url: 'http://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=en-US',
       success: function(feed) {
           alert(1);
           //feed.title
       }
   });


И пробовал сделать через ajax, функция alert даже не вызывается

laimas 17.09.2015 20:31

Еще раз - Access-Control-Allow-Origin, больше повторять не буду.
Если этого заголовка нет от сервера, то запросы будут отклонены. Открывайте отладчик и контролируйте ситуацию.

yyyyuriyyyy 17.09.2015 21:21

Цитата:

Сообщение от laimas (Сообщение 389042)
Еще раз - Access-Control-Allow-Origin, больше повторять не буду.
Если этого заголовка нет от сервера, то запросы будут отклонены. Открывайте отладчик и контролируйте ситуацию.

Использовал плагин https://developers.google.com/feed/v1/devguide

laimas 17.09.2015 21:30

И что, он что волшебный? Ну откройте отладчик, F12, проверьте реакцию браузера на запрос, это же не сложно.


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