ExtJS 和 Ajax 与 SSL (https)
Posted
技术标签:
【中文标题】ExtJS 和 Ajax 与 SSL (https)【英文标题】:ExtJS and Ajax with SSL (https) 【发布时间】:2013-05-19 20:24:38 【问题描述】:我在 Django 应用程序之上有一个 ExtJS 应用程序,我需要发布到 /accounts/logout/
以使会话无效,然后重定向到 /
。
以下代码在本地运行,但在具有 SSL 的实时站点上失败。我在通过 ExtJS 执行 Ajax POST 时遇到问题。代码如下:
Ext.Ajax.request(
url: '/accounts/logout/',
withCredentials: true,
method: 'POST',
success: function()
console.log('successfully logged out');
window.location.href='/'
);
Chrome 中的响应状态为(cancelled)
,如下截图所示:
此外,我在控制台级别收到此警告:
https://domain.example.com/
的页面显示了不安全的内容 来自http://console.pharmacy.com.mt/
。
上面的Ext.Ajax
请求是否缺少一些配置对象?
【问题讨论】:
请求是否从http
到https
?如果是这样,那将使其成为跨域请求。
@EvanTrimboli 单页应用程序通过https
渲染和服务;在我的情况下,任何http
请求都会通过 nginx Web 服务器重定向到其https
版本。所以应该是从https
到https
。
我看不出有什么理由不应该这样做。出于兴趣,如果您将window.location
调用包装在setTimeout
中,比如说10 毫秒?
尝试删除 withCredentials: true,
看看会发生什么。
【参考方案1】:
尝试删除 withCredentials: true
Ext.Ajax.request(
url: '/accounts/logout/',
method: 'POST',
success: function()
console.log('successfully logged out');
window.location.href='/'
);
【讨论】:
以上是关于ExtJS 和 Ajax 与 SSL (https)的主要内容,如果未能解决你的问题,请参考以下文章
Django - 使用 ExtJS 发布 ajax 请求禁止 403