好吧,最初我忘记了中间件类但是在添加它之后工作正常(这是一周前)。
现在,我回到我的工作站,发现它再次无效。
public class EmojiModel {
private int id;
private int price;
public String urlFile;
public EmojiModel(String urlFile) {
this.urlFile=urlFile;
}
public String getEmojiFile() {
return urlFile;
}
public void init(JSONDictionary data){
try{
urlFile = (String) data.get("urlFile");
id = Integer.parseInt((String) data.get("id"));
price = Integer.parseInt((String) data.get("price"));
}catch(Exception e){
e.printStackTrace();
}
}
}
标题根本没有设置。
我已经尝试了所有这些,将中间件置于顶部,在ACCESS_CONTROL_ALLOW_ORIGIN
之前,但它只是不起作用。
这是我的 setting.py 文件:
CommonMiddleware
这是我得到的回应:
DEBUG = True
ALLOWED_HOSTS = ['*']
# Application definition
INSTALLED_APPS = [
'account',
'corsheaders',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'social_django',
]
# if DEBUG:
# INSTALLED_APPS += 'corsheaders',
# MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware', ]
# else:
# MIDDLEWARE = []
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',
]
CORS_ORIGIN_ALLOW_ALL = DEBUG
答案 0 :(得分:0)
# Cors headers
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
)
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
)
答案 1 :(得分:0)
在项目的GitHub问题中找到了答案。
Access-Control-Allow-Origin
仅在请求中包含origin
标头时才包含在响应中。
浏览器会自动添加此标头,因此在使用您的API的网页上您应该不会看到CORS错误。
对我来说,此请求未返回任何Access-Control-Allow-Origin
:
curl -v -H "Content-Type: application/json" localhost:80/status
这确实做到了:
curl -v -H "Content-Type: application/json" -H "origin: *" localhost:80/status
GitHub页面上的答案: https://github.com/adamchainz/django-cors-headers/issues/438