在Heroku上为Django应用指定CORS网址
我在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="*" />
,这意味着可以访问任何网址。