方式一Django支持跨域
安装django-cors-headers
pip install django-cors-headers
配置settings.py文件
INSTALLED_APPS = [
‘corsheaders’,
]
#跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
#跨域允许的请求方式(可选)
CORS_ALLOW_METHODS = (
‘DELETE’,
‘GET’,
‘OPTIONS’,
‘PATCH’,
‘POST’,
‘PUT’,
)
#跨域允许的头部参数(可选)
CORS_ALLOW_HEADERS = (
‘XMLHttpRequest’,
‘X_FILENAME’,
‘accept-encoding’,
‘authorization’,
‘content-type’,
‘dnt’,
‘origin’,
‘user-agent’,
‘x-csrftoken’,
‘x-requested-with’,
‘Pragma’,
)
方法2
使用jsonp
前端
//JQ
// 使用jsonp: 只能用于get
/*
$.ajax({
url: ‘http://127.0.0.1:8000/getdata/’,
dataType: ‘JSONP’, // 使用JSONP
jsonp: ‘callback’, // 回调参数的名称
jsonpCallback: ‘fn’ // 回调函数名称 // 相当于添加了参数callback=fn
})
// 服务器返回的数据
// fn(‘情人节快乐!’)
function fn(data) {
console.log(’–fn–’,data)
}
*/
后端
callback = request.GET.get(‘callback’)
return HttpResponse(’%s(“情人节快乐!”)’% callback)