Django webapp无法在ipad(csrf_token)和IE(CORS)错误上工作

时间:2019-07-17 16:20:49

标签: python django internet-explorer csrf-token

对不起,我知道这是一种2种胶团,但那里可能有一种资源可以解决我的两个问题。我有一个使用Django创建的webapp,正在将其加载到我已开始测试的wordpress网站的iframe中。

目前,它可以在谷歌浏览器,我的Android手机和iPhone上正常工作。但是,只有在使用ipad时才从iframe中“发布”时,我遇到CSRF令牌问题。

在浏览“ django-cors-headers”文档后,我也无法加载Internet Explorer,出现CORS错误。

我同时拥有X-frame-options和Cors白名单,允许该网站托管iframe。

我不知道为什么该应用程序可以在几个设置中都能正常运行,而在其他设置中却不能正常运行-或者错误可能仅仅是由于我正在测试的设备上的个性化设置所致。如果有人可以提供任何帮助,将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以参考this thread,检查是否已遵循使用django-cors-headers库的所有步骤。另请检查您使用的Django版本,该库不支持 Django版本<1.11 。在this thread中,它表明CORS_ORIGIN_WHITELIST可以很好地用作字符串,但不能作为元组。请确认您使用了正确的表格。

对于IE中的CORS错误,服务器必须将以下标头附加到所有响应中,您可以检查this article以获得更多信息。您还可以参考this blog,它提供了另一种方法来处理IE中的CORS问题。

Access-Control-Allow-Origin: http://example.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH, PUT, REPORT, SEARCH, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL
Access-Control-Allow-Headers: Overwrite, Destination, Content-Type, Depth, User-Agent, Translate, Range, Content-Range, Timeout, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control, Location, Lock-Token, If
Access-Control-Expose-Headers: DAV, content-length, Allow