Ошибка безопасности при попытке доступа к скрученному серверу RPC из JavaScript в том же домене, но с другого порта - PullRequest
0 голосов
/ 27 февраля 2010

У меня есть сервер django, который обслуживает основной сайт с пользователем, аутентификацией и т. Д., И витой веб-сервер, который «должен» доставлять живой контент в виде потоков json.

Django server is running on 127.0.0.1:8080
Twisted 127.0.0.1:9897

Проблема в том, что когда я пытаюсь сделать http-запрос к витому серверу со страницы сайта django, я получаю ошибку безопасности. Очевидно, такая же политика происхождения запрещает такого рода общение (???). Если это так, то есть ли альтернативы? Любые намеки, решение .. На орбите это успешно, есть идеи как?

Спасибо

1 Ответ

0 голосов
/ 27 февраля 2010

Обычный обходной путь для этой проблемы - туннелирование этих запросов через скрипт, который действует как прокси.

Вот тривиальный пример ...

Скрипт PHP-прокси - proxy.php

<?php
echo file_get_contents(urldecode($_REQUEST['requestedUrl']));
?>

Какой-то хороший js-код, который должен сделать запрос к витому серверу с сайта django.

// This remote request can't be made from the browser, lets forward it to the local proxy
var twistedRequestUrl = 'http://127.0.0.1:9897/someSpecialApiCall?withAnArgument=andAnImportantValue';

$.ajax({
    url : 'proxy.php?requestedUrl=' + encode(twistedRequestUrl),
    success : function(data)
    {
        alert('yay, the twisted call returned:' + data + ' yay!');
    }
});
...