2014-11-05 2 views
0

У меня есть эта проблема ... Я работаю над проектом, который загружает имена из файла JSON (это не важно).Можно загрузить данные изображения/PNG после перенаправления ссылок?

Дело в том, что я использую Wikia Special: Filepath ссылка для получения моих изображений. Поэтому, когда я печатаю в своем браузере: http://2007.runescape.wikia.com/wiki/Special:Filepath/Abyssal_head.png он возвращает ссылку на изображение: http://img1.wikia.nocookie.net/__cb20140108135954/2007scape/images/0/0f/Abyssal_head.png.

Есть ли способ обойти это перенаправление, чтобы я мог правильно загрузить его с помощью вызова ajax? Всякий раз, когда я пытаюсь сделать эту первую ссылку я получаю эту ошибку (что является нормальным, потому что он не может найти правильные заголовки, я думаю):

XMLHttpRequest cannot load http://2007.runescape.wikia.com/wiki/Special:Filepath/Abyssal_head.png. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. 

Вся помощь приветствуется.

+1

Что именно вы хотите сделать? –

+0

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

+0

Привет Shabeer! Да, я знаю, что это работает, но меня это беспокоит. Я хотел бы загрузить все изображения, поместить их в массив или объект и показать их, когда загрузятся все изображения. Есть моя проблема – Nicholas

ответ

1

Special:Filepath полезен для связи с файлами из вики, но если вы хотите программно извлекать пути, использование API даст вам гораздо большую гибкость. Чтобы получить FilePath, просто использовать prop=imageinfo и iiprop=url параметры, как this:

api.php?action=query &titles=Image:Abyssal_head.png &prop=imageinfo &iiprop=url &format=json

Это даст вам объект JSON, как этот

{"query": { 
    "normalized":..., 
    "pages":{ 
     "28052":{ 
      "pageid":28052, 
      "ns":6, 
      "title":"File:Abyssal head.png", 
      "imagerepository":"local", 
      "imageinfo":[ 
       { 
        "url":"http:\/\/img1.wikia.nocookie.net\/__cb20140108135954\/2007scape\/images\/0\/0f\/Abyssal_head.png", 
        "descriptionurl":"http:\/\/2007.runescape.wikia.com\/wiki\/File:Abyssal_head.png" 
       } 
      ] 
     } 
    } 
}} 

... с нужным URL в query.pages.{PAGE}.imageinfo.url

Вы можете запросить несколько файлов на одном, разделив их заголовки на |.

См. 2007.runescape.wikia.com/api.php для полной документации.

+0

Спасибо человеку! Это действительно полезно! Теперь я мог загружать все изображения, прежде чем показывать их на экране! – Nicholas

Смежные вопросы