在Heroku上的Django应用程序中指定CORS的URL

时间:2014-03-12 12:00:54

标签: python django cordova cors django-cors-headers

我在Heroku中运行了一个使用Django的应用程序。

现在我开始开发一个我想用我的Heroku应用程序工作的Phonegap应用程序。

由于CORS(跨域资源共享)保护,我无法使其正常工作。因此,我需要排除一些网址(不是所有应用),以使我的Phonegap应用运行。

我已尝试安装django-cors-headers,但它似乎无法正常工作。

为了测试它,我打电话来获取csrf_token。

我将此添加到我的setting.py中(当然,按照指南,将all设置为默认值):

CORS_URLS_REGEX = r'^register/.*$'
CORS_URLS_REGEX = r'^login/.*$'
CORS_URLS_REGEX = r'^getcsrf/.*$'

这是我尝试的Ajax调用:

get: function() {
    $.getJSON("http://domain.herokuapp.com/getcsrf/",
    {
        tags: "jquery,javascript",
        tagmode: "any",
        format: "json"
    },
    function(data) {
        $.each(data.items, function(item){
            console.log(item);
            });
    });
}

但我将其标记为红色,表示错误和空响应字段:

GET http://domain.herokuapp.com/getcsrf/?tags=jquery%2Cjavascript&tagmode=any&format=json   200 OK    206ms

1 个答案:

答案 0 :(得分:0)

对于phonegap没有交叉来源限制,它使用的是webview,而不是网络浏览器。

您与phonegap / cordova的唯一关系是确保您的服务器在config.xml中列入白名单。

在cordova 3.3 / 3.4中,默认设置为<access origin="*" />,允许访问任何网址。