Кросс-происхождение GET из локального файла: //

Я пытаюсь создать html-файл для мониторинга некоторых вещей на удаленном сайте, в частности, github.com. Я хотел бы иметь возможность использовать только этот плоский файл, отправляя запросы прямо из JS в API github. Мой мыслительный процесс был таким:

  1. Let's use jsonp, since I only need read access, so sticking with GETs should be fine.
  2. Ok, I'll use Github's OAuth instead of basic authentication!
    • That fails because the browser doesn't like me redirecting to a local resource: Not allowed to load local resource: file:///Users/... for understandable security reasons.
  3. Ok, I'll load Github's oauth in an iFrame, then get the resulting url (which should contain the oauth code I need).
    • That fails because you apparently can't access anything about a child iframe if it's on another domain, so unless I redirect back to file:///whatever, I can't get the final url. And, of course, I can't redirect to file:///whatever because of the ``Not allowed to load local resource` again.
  4. Ok, I'll use Cross-Origin Resource Sharing (going back to basic auth again)!

Итак, какие-либо предложения относительно того, как успешно пройти аутентификацию в этом API из одного локального html-файла - либо как способ обойти вышеуказанные такты, либо как другую идею?


person Fishtoaster    schedule 19.11.2011    source источник


Ответы (1)


Если вы используете Google Chrome, вы можете попробовать запустить его с помощью

--allow-file-access-from-files

переключатель включен.

person Esailija    schedule 19.11.2011
comment
Я не думаю, что это поможет - AFAIK все, что он делает, это разрешает загрузку AJAX file:///, если источник также находился в пределах file:///. - person Alnitak; 19.11.2011
comment
@Alnitak, возможно ли запустить веб-сервер на вашем компьютере? Это единственное, что у меня осталось :( - person Esailija; 19.11.2011
comment
Да, запуск веб-сервера — это последний вариант после проверки переполнения стека. :) Что касается этого ответа, я думаю, что есть также опция Chrome, позволяющая просто разрешить кросс-происхождение, хотя я бы предпочел не включать ее, когда использую ее для обычных вещей. - person Fishtoaster; 20.11.2011