Django и Ajax Push Engine (APE): небезопасная попытка JavaScript получить доступ к кадру с URL-адресом

Я пытаюсь настроить сервер APE для своего проекта Django.

Настраивать

  1. Я следовал инструкциям по настройке в вики APE: Простая конфигурация APE

    Однако мне пришлось изменить порт. Моя конфигурация виртуального хоста выглядит следующим образом:

    NameVirtualHost 127.0.0.1:8100
    Listen 127.0.0.1:8100
    <VirtualHost 127.0.0.1:8100>
        ServerName local.ape-project.org
        ServerAlias ape.local.ape-project.org
        ServerAlias *.ape.local.ape-project.org
    
        DocumentRoot "/path/to/my/project/ape-jsf/"
    </VirtualHost>
    

    Запуск http://local.ape-project.org:8100/Tools/Check/ успешно выполняет все тесты и возвращает сообщение: All test done. Now you can play with your APE \o/

  2. Django работает на порту 8000:

    python manage.py runserver_plus 0.0.0.0:8000

  3. Я следовал инструкциям первого урока: Учебник: Color Changer

    Я поместил код JavaScript в свой проект django (с включением Clients/JavaScript.js).

Проблема

Когда я открываю страницу, я получаю эту ошибку:

Unsafe JavaScript attempt to access frame with URL http://2.ape.local.ape-project.org:6969/?[{%22cmd%22:%22script%22,%22params%22:{%22domain%22:%22127.0.0.1%22,%22scripts%22:[%22http://local.ape-project.org:8100/static/ape-jsf/Source/mootools-core.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Core/APE.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Core/Events.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Core/Core.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Pipe/Pipe.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Pipe/PipeProxy.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Pipe/PipeMulti.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Pipe/PipeSingle.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Request/Request.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Request/Request.Stack.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Request/Request.CycledStack.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Transport/Transport.longPolling.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Transport/Transport.SSE.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Transport/Transport.XHRStreaming.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Transport/Transport.JSONP.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Core/Utility.js%22,%22http://local.ape-project.org:8100/static/ape-jsf/Source/Core/JSON.js%22]}}]
from frame with URL http://127.0.0.1:8000/mydjangoapp/somepage/. Domains, protocols and ports must match.

Я понимаю, что существует проблема безопасности с разными доменами и портами.

Но как это должно работать?


person Alp    schedule 14.05.2012    source источник


Ответы (1)


Оказалось, что сложно настроить среду, в которой работают и Ape, и runserver. Решение этой проблемы заключается в использовании другого веб-сервера.

Я выбрал Apache и модуль mod_wsgi:

person Alp    schedule 21.05.2012
comment
Я сталкиваюсь с той же проблемой. У меня есть dev.mydomain.com и ape.mydomain.com. Это так у вас настроено или вы все запускаете из одного домена? Спасибо. - person stampede76; 09.11.2012
comment
Я нашел ответ из их групп Google. Добавив {transport:2} в качестве параметра в client.load(), например client.load({transport: 2}); он работает с разными субдоменами групп. google.com/forum/?fromgroups=#!searchin/ape-project/ - person stampede76; 09.11.2012
comment
Кстати, я отказался от APE, потому что есть альтернативы получше. В настоящее время я очень доволен sockjs. Посмотрите этот отличный ответ на мой вопрос: stackoverflow.com/a/10950702/675065 - person Alp; 09.11.2012
comment
Я проверю это и посмотрю, как оно идет. Мне не нужен такой же объем сообщений, но, возможно, много подключений. Мне нужно что-то, чтобы избежать интервального опроса для 1 или 2 сообщений каждые 10 минут для многих пользователей. Я проведу несколько тестов на APE, и если это не сработает, переключитесь на sockjs. Спасибо. - person stampede76; 10.11.2012
comment
Конечно, дайте мне знать, как это происходит. - person Alp; 10.11.2012