![](/img/trans.png)
[英]Flask/Flask-CORS: CORS header ‘Access-Control-Allow-Origin’ missing
[英]flask-cors Control-Allow-Origin'
尝试在结合Python和django的本地服务器上执行简单的json请求。
我的apiview.py
from rest_framework import generics
from django.shortcuts import get_object_or_404
from .jsonserializer import GroupSerializer, SubgroupSerializer, ProductsSerializer
from .models import pGroups, pSubgroups, Products
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route("/Group/")
# @cross_origin()
# Create your views here.
class GroupList(generics.ListCreateAPIView):
queryset = pGroups.objects.all()
serializer_class = GroupSerializer
jQuery脚本
let dropdown = $('#locality-dropdown');
dropdown.empty();
dropdown.append('<option selected="true" disabled>Choose product group</option>');
dropdown.prop('selectedIndex', 0);
const url = 'http://127.0.0.1:8000/Group/';
// Populate dropdown with list of provinces
$.getJSON(url, function (data) {
$.each(data, function (key, entry) {
console.log(entry.name);
dropdown.append($('<option></option>').attr('value', entry.abbreviation).text(entry.name));
})
});
毕竟我登录控制台smthng像:
无法加载http://127.0.0.1:8000/Group/ :请求的资源上没有“ Access-Control-Allow-Origin”标头。 因此,不允许访问原始“空”。
我正在尝试的是: Flas cors,但我似乎在apiview.py中缺少某些内容。
PS我是网络方面的完整初学者。 编辑:与邮递员我得到答复
[
{
"id": 1,
"group_chiper": "01",
"group_shortcut": "DRN",
"group_name": "Drink",
"operator": 2
},
{
"id": 2,
"group_chiper": "02",
"group_shortcut": "ML",
"group_name": "Meals",
"operator": 1
}
]
根据罗宾评论:
django-cors-header是其中一种方法。
使用命令行将其安装到您的根项目:
pip install django-cors-headers
如果您正在使用环境,则可以将其安装到根项目文件夹并重置环境。
将已安装的应用添加到您的
settings.py
INSTALLED_APPS = (
...
'corsheaders',
...
)
MIDDLEWARE = [ # Or MIDDLEWARE_CLASSES on Django < 1.10
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CorsMiddleware应该放置在尽可能高的位置,尤其是在可以生成响应的任何中间件之前,例如Django的CommonMiddleware或Whitenoise的WhiteNoiseMiddleware。 如果不是以前,它将无法将CORS标头添加到这些响应中。
我缺少的部分是添加settings.py
代码行
CORS_ORIGIN_ALLOW_ALL = True
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.