django跨域问题解决
在django中,访问非同源网站(协议,域名,端口号)时,会出现:

解决方案:
1.安装 django-cors-headers
pip install django-cors-headers
2.修改 setting.py
INSTALLED_APPS = [ ... 'corsheaders', ... ] # 添加中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware',# 默认 'django.contrib.sessions.middleware.SessionMiddleware', # 默认 'corsheaders.middleware.CorsMiddleware',# 默认 # 注意顺序,即在上一个的下面 'django.middleware.common.CommonMiddleware', # 新增 ✔ 'django.middleware.csrf.CsrfViewMiddleware',# 默认 'django.contrib.auth.middleware.AuthenticationMiddleware',# 默认 'django.contrib.messages.middleware.MessageMiddleware', # 默认 'django.middleware.clickjacking.XFrameOptionsMiddleware',# 默认 'django.middleware.common.CommonMiddleware',# 默认 ] # 跨域增加忽略 CORS_ALLOW_CREDENTIALS = True CORS_ORIGIN_ALLOW_ALL = True CORS_ORIGIN_WHITELIST = ( '*' ) CORS_ALLOW_METHODS = ( 'DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'VIEW', ) CORS_ALLOW_HEADERS = ( 'XMLHttpRequest', 'X_FILENAME', 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', )
然后再次运行:

xxx.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
function upd() {
$.ajax({
type: "GET",
data: "a=1",
url: "http://127.0.0.1:8000/books/?format=json",
success: function(result) {
console.log(result);
//alert(result)
}
});
}
</script>
<body>
<!--获取-->
<button id="btn2" onclick="upd()">Get request 获取</button>
</body>
</html>
浙公网安备 33010602011771号