0

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

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

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

我试过安装django-cors-headers,但它似乎不起作用。

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

我将此添加到我的 setting.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
4

1 回答 1

0

phonegap 没有跨源限制,它使用的是 web 视图,而不是 web 浏览器。

您对 phonegap/cordova 唯一要做的就是确保您的服务器在 config.xml 中被列入白名单。

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

于 2014-03-12T12:39:25.727 回答