我使用 django-cors-headers 3.1.1 来处理 Django 后端和 Javascript 前端应用程序之间的请求和响应。传输是不安全的(即http,而不是https)。
\n\n当本地托管时,一切正常。但在服务器上部署后,我不再看到 CORS 标头。
\n\n\n\n错误信息:
\n\nAccess to XMLHttpRequest at \'http://[HOST_IP]/api/assets/\' from origin \'http://my_custom_domain.eu\' has been blocked by CORS policy: Response to preflight request doesn\'t pass access control check: No \'Access-Control-Allow-Origin\' header is present on the requested resource.\nRun Code Online (Sandbox Code Playgroud)\n\n我的 nginx 配置如下:
\n\nserver {\n listen 80;\n server_name [HOST_IP];\n\n location / {\n include proxy_params;\n proxy_pass http://unix:/home/ubuntu/[path_to_app]/app.sock;\n\n add_header \'Access-Control-Allow-Origin\' \'*\';\n add_header \'Access-Control-Allow-Methods\' \'GET, PUT, OPTIONS\';\n add_header \'Access-Control-Allow-Headers\' \'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range\';\n add_header …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用带DRF的嵌套序列化程序,但它不会在输出中显示相关项.
这是我的model.py:class Categorie(models.Model):nom = models.CharField(max_length = 100)
class Categorie(models.Model):
nom = models.CharField(max_length=100)
def __unicode__(self):
return unicode(self.nom)
class Item(models.Model):
nom = models.CharField(max_length=100)
disponible_a_la_vente = models.BooleanField(default = True)
nombre = models.IntegerField()
prix = models.DecimalField(max_digits=5, decimal_places=2)
history = HistoricalRecords()
categorie = models.ForeignKey(Categorie, models.CASCADE)
class Meta:
verbose_name = "item"
verbose_name_plural = u"inventaire"
ordering = ['categorie', 'nom']
def __unicode__(self):
return u'{nom} - {nombre}'.format(nom = self.nom, nombre = self.nombre)
Run Code Online (Sandbox Code Playgroud)
和我的 serializers.py
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('nom',)
class CategorieSerializer(serializers.ModelSerializer):
items …Run Code Online (Sandbox Code Playgroud)