在Heroku上为Django应用指定CORS网址

0 投票
1 回答
1005 浏览
提问于 2025-04-17 21:56

我在Heroku上有一个用Django开发的应用。

现在我开始开发一个Phonegap应用,想让它能和我的Heroku应用一起工作。

但是因为CORS(跨源资源共享)保护,我无法让它正常工作。所以我需要排除一些网址(不是所有的应用)来让我的Phonegap应用能够运行。

我尝试安装了django-cors-headers,但似乎没有效果。

为了测试,我正在尝试获取一个csrf_token。

我在我的settings.py文件中添加了这些内容(当然也按照指南将所有设置为默认):

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

使用PhoneGap的时候,没有跨域限制,因为它是用一个网页视图,而不是普通的网页浏览器。

你只需要确保你的服务器在config.xml文件中被列入白名单。

在Cordova 3.3和3.4版本中,默认设置是 <access origin="*" />,这意味着可以访问任何网址。

撰写回答