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 请求是否缺少一些配置对象?

【问题讨论】:

请求是否从httphttps?如果是这样,那将使其成为跨域请求。 @EvanTrimboli 单页应用程序通过https 渲染和服务;在我的情况下,任何http 请求都会通过 nginx Web 服务器重定向到其https 版本。所以应该是从httpshttps 我看不出有什么理由不应该这样做。出于兴趣,如果您将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)的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS Ajax POST 与代理 POST

extjs ajax请求与struts2进行交互

Django - 使用 ExtJS 发布 ajax 请求禁止 403

哈哈,找到一种方式来简单模拟EXTJS中与服务器的AJAX交互啦。

ExtJs

EXTJS