我正在为基于 Django 的应用程序开发 Phonegap 应用程序,但在尝试进行 Ajax 调用时出现此错误:
I'm developing a Phonegap app for my Django based app, but when trying to make Ajax calls I get this error:
XMLHttpRequest cannot load http://domain.herokuapp.com/getcsrf/?tags=jquery%2Cjavascript&tagmode=any&format=json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
我怎样才能让我的 Django 应用程序允许某些 url 跨源?
How can I make it so my Django app allows cross origin for some urls?
这是我的 Ajax 代码:
Here's my Ajax code:
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);
});
});
}
默认情况下,Django 不提供提供跨域所需的标头.最简单的方法是使用这个为您处理它的 Django 应用程序:https://github.com/adamchainz/django-cors-headers
Django by default does not provide the headers necessary to provide cross origin. The easiest way would be to just use this Django app that handles it for you: https://github.com/adamchainz/django-cors-headers
CORS_ALLOWED_ORIGINS = [
"http://read.only.com",
"http://change.allowed.com",
]
要支持全部允许,只需使用设置...CORS_ALLOW_ALL_ORIGINS = True然后在中间件或视图中对请求进行任何过滤.
to support allowing all, just use the setting...
CORS_ALLOW_ALL_ORIGINS = True
and then do any filtering of the request in middleware or in the view.
这篇关于Django 应用程序中的访问控制允许来源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
Angular 2 (Ionic 2):拦截 ajax 请求Angular 2 (Ionic 2): intercept ajax requests(Angular 2 (Ionic 2):拦截 ajax 请求)
Angular 2 HTTP 进度条Angular 2 HTTP Progress bar(Angular 2 HTTP 进度条)
从 IIS 中的应用程序打印到服务器上的网络打印机Printing from an application in IIS to a networked printer on server(从 IIS 中的应用程序打印到服务器上的网络打印机)
在 Google 应用引擎 Python 中提供静态 htmlServing static html in Google app engine Python(在 Google 应用引擎 Python 中提供静态 html)
angular2 使用 HTTP 发布 XML 类型的请求数据angular2 posting XML type request data using HTTP(angular2 使用 HTTP 发布 XML 类型的请求数据)
存储 HTML5 地理位置数据Storing HTML5 geolocation data(存储 HTML5 地理位置数据)