Любые размещенные версии jQuery, которые имеют заголовок "Access-Control-Allow-Origin: *"?

Недавно я работал с jQuery и столкнулся с проблемой, когда я не мог включить ее в пользовательский скрипт, потому что XmlHttpRequest использует ту же самую политику происхождения. После дальнейшего тестирования я обнаружил, что большинство браузеров также поддерживают управление доступом к ресурсам Cross-Origin, определяемое W3C как обходное решение для проблем с одинаковой политикой происхождения, Я протестировал это, разместив jQuery script на локальном веб-сервере, который включал заголовок Access-Control-Allow-Origin: * http, который позволял загружать script с помощью XmlHttpRequest, чтобы он мог быть включен в мой usercript. Я бы хотел использовать размещенную версию jQuery при выпуске script, но пока тестирование с помощью таких инструментов, как http://www.seoconsultants.com/tools/headers У меня есть не найдены сайты, разрешающие перекрестный доступ к jQuery script. Вот список, который я тестировал до сих пор:

Существуют ли какие-либо другие размещенные версии jQuery, которые разрешают доступ к перекрестному происхождению? Я знаю, что jQuery обычно загружается через тег script (иногда динамически созданный тег script), но в этом конкретном случае я должен использовать XmlHttpRequest и Eval, чтобы убедиться, что он загружен в правильную область. Google Chrome поддерживает пользовательские скрипты, но не поддерживает @require, что означает единственный способ использования jquery в пользовательском script в Google Chrome - внедрить его в. user.js или загрузить файл и загрузить его через XmlHttpRequest. Встраивание является менее оптимальным решением, и в то время как расширения Chrome позволяют включать jQ файлы jQuery в расширениях, я бы предпочел придерживаться пользовательских скриптов, поскольку они намного проще и могут работать не только в одном браузере. Я уже отправил билеты с помощью API Google Ajax и jQuery, чтобы разрешить доступ к междоменному доступу к CDN, но я предполагаю, что мне просто нужно будет разместить его сам на данный момент.

Ответ 1

Поскольку вы задали этот вопрос, CDN Google добавил эти заголовки в соответствии с запросами. Быстрый GET https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js дает заголовок:

access-control-allow-origin:*

Итак, добавьте тег script, как это, и вам хорошо идти:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" crossorigin="anonymous" type="text/javascript"></script>

Ответ 2

У меня была эта же проблема, и мое решение оказалось в том, что я должен был разместить файл самостоятельно. С моим собственным хостингом я мог разрешить междоменные запросы для jQuery script.

Я пытался пропустить много обручей, чтобы обойти это, и потратил слишком много часов, пытаясь выследить и попробовать script хосты, разрешающие междоменный доступ. В конце концов, однако, я пришел к выводу, что, если я буду полагаться на неизвестную размещенную версию script, я мог бы также сам ее запустить, потому что я доверяю себе больше, чем хосты, которые я рассматривал.

Ответ 3

Amazon Cloudfront позволяет вам установить заголовок Access-Control-Allow-Origin. В принципе, если вы размещаете jQuery самостоятельно, тогда придерживайтесь CDN Cloudfront перед ним, Cloudfront будет ретранслировать любые заголовки, установленные вами клиенту:

your jQuery -> Cloudfront jQuery -> Client Browser
[header set]   [header set]         [header set]

Для пользователя Amazon настроен CDN Cloudfront; недостаток этого по сравнению с тем, что, как утверждают, размещенные API Google - это то, что посетители, впервые посетившие ваш сайт, не загрузили jQuery, посетив другой сайт (и, следовательно, извлекли выгоду из кеширования.)