2010-08-12 3 views
0

Я разрабатываю службу JavaScript API. Главная страница HTML выглядит следующим образом:Задача javascript для межсайтовых сайтов

<html> 
<head> 
    <script type="text/javascript" src="scripts/logic.js"></script> 
    <script type="text/javascript" src="scripts/jquery-1..."></script> 
    <script type="text/javascript" src="http://mydomain/api/main.js"></script> 
</head> 
... 
</html> 

В сценарии main.js я загрузить другой скрипт из MYDOMAIN. Я делаю это, добавляя скриптовый тег ([script .. src = "http: //mydomain/api/getsomedata.js? Callback_id = 3434 & someparams = ..."]). Загруженный скрипт imediatly вызывает функцию обратного вызова API: MyApi.processCallback (...). Все работает нормально.

Но когда я пытаюсь загрузить еще один скрипт mydomain из локального файла (logic.js), я получаю очень странную ситуацию: все глобальные объекты сценария не определены. Нет объекта MyApi или объекта jQuery $, которые были видны во время предыдущего вызова. Поэтому я не могу вызвать функцию обратного вызова MyApi.

Возможно, это из-за ограничений безопасности. Anti-XSS, или что-то подобное. Я попытался добавить заголовок X-XSS-Protection, как и во всех API JavaScript JavaScript. Но это не помогло.

Я не использую IFRAMES.

Проблема может быть решена точно, так как многие API JavaScript на разных сайтах работают (API Карт Google и т. Д.) По той же идее.

ответ

0

Что происходит в вашем скрипте?

Если вы выполняете обратные вызовы Ajax в домене, ваш скрипт завершится с ошибкой Same Origin. Если вам нужно общаться с вашим сервером из другого домена, вам нужно использовать JSONP. Если вы работаете только с современным браузером, вы можете уйти с CORS.

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