Междоменные запросы - PullRequest
       0

Междоменные запросы

4 голосов
/ 12 июля 2011

У меня есть файл скрипта, загруженный из mydomain.com, который отправляет запросы Ajax в этот домен.Однако скрипт загружается в какой-то другой домен, который инициализирует его, а затем сообщает, когда делать запросы.Я сталкиваюсь с проблемами, потому что браузер считает, что это междоменный запрос.Я думал, что с любого домена, с которого был загружен файл сценария, можно было отправлять запросы обратно к этому источнику?Вот пример кода:

Страница в someotherdomain.com:

<html>
    <head>
        <script type="text/javascript" src="http://mydomain.com/test.js"></script>
        <title>Cross-Domain Ajax Test</title>
    </head>
    <body>
        <h1>Test</h1>
        <p id="ajax-response"></p>
        <script type="text/javascript">
          Test.testAjax();
        </script>
    </body>
</html>

Скрипт загружен из mydomain.com

Test = { 
    testAjax: function() {
        //make ajax request to http://mydomain.com/myendpoint
    }
}

Что я делаю не так?Какой правильный подход?

Ответы [ 4 ]

2 голосов
/ 12 июля 2011

Я думал, что из какого домена, из которого был загружен файл скрипта, можно было отправлять запросы обратно в этот источник?

Нет.Источник всегда страница , а не сценарий.

2 голосов
/ 12 июля 2011

Что я делаю не так?

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

Какой правильный подход?

Существует два варианта:

  1. Поместите и исполняемый скрипт, и вызываемый скрипт в одном домене.

  2. Используйте dataType = "jsonp", чтобы обойти ограничение.jQuery выполнит некоторую магию (заменив вызов ссылкой на встроенный скрипт в формате <script src="mydomain.com/endpoint" />, чтобы сделать эту работу.

1 голос
/ 12 июля 2011

Происхождение скрипта всегда будет mydomain.com!Вы можете использовать Ajax Proxy (через ваш бэкэнд) или, в конечном итоге, JSONP - ваш путь (более вероятно, оба варианта зависят от ваших потребностей).

0 голосов
/ 12 июля 2011

Когда вы загружаете javascript, код выглядит как someotherdomain.com, и у вас возникнут междоменные проблемы, переходящие из этого домена в mydomain.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...