我有以下设置。
在我的dns上:一个指向我的域名的IP地址的A name记录
在我的服务器上: nginx -> gunicorn -> django
但是当我提交一个表单(例如登录表单)时,地址栏中的地址就从我的域名变成了我的IP地址。这会导致跨域错误。
当我访问mydomain/admin时,在表单上会发生这种情况
当我访问页面时,我在地址栏中的域名保持不变。当我转到mydomain/admin时,它会自动切换到IP,而不会提交任何其他表单。任何其他时间,我必须提交表单才能将其更改为IP地址。
我所有的媒体和所有东西都使用路径中的mydomain。这是最奇怪的事情。我只是在打开我的管理页面时才注意到这一点,但并没有想太多。但是我只是添加了一些表单,现在我不能提交这些表单,因为这些表单试图提交到导致跨域错误的IP地址。
我应该补充说,这些表单是由django注册自动生成的。
发布于 2010-12-26 03:12:15
在settings.py文件中查找您的IP。可以是像MEDIA_URL这样的设置,设置为使用您的IP而不是您的域。
发布于 2010-12-26 11:52:56
这意味着您的表单已配置为提交到IP地址。查看表单的源代码并查找表单标记:
<form action="http://(ip here?)/form/" method="GET">确保该IP地址未插入此处。您可以使用相对URL。我通常将其留空,因为我的大多数表单都是由最初生成表单的同一视图处理的。
发布于 2010-12-27 02:14:04
我假设你是在本地开发的,但这并没有发生,所以我建议这是你的Nginx配置中的一些东西。您是否可以使用Firebug/Web Inspector来查看是否存在从您的域到您的IP的重定向?
我还会检查以确保您的网站的URL在管理员中设置正确。有时这可能会导致不正确的urls,尽管我认为您提到的情况并不适用。
https://stackoverflow.com/questions/4531095
复制相似问题