当前位置: 首页 > 知识库问答 >
问题:

Cordova Android应用程序(在XDK中构建)通过HTTPS阻止Ajax请求

须景胜
2023-03-14

首先,超文本传输协议上的常规Ajax请求工作正常。当我试图在https上执行完全相同的Ajax请求(GET)时,问题就开始了。

在使用WEINRE进行调试时,我可以在网络选项卡中看到请求处于挂起状态,但我得到的是假空响应,其中包含status=0和其他属性empty。不仅如此,服务器端从未收到这些请求。看起来Android就是不让他们走。

在构建应用程序之前,我在XDK的构建设置中到处设置通配符*

<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src * 'unsafe-inline'; media-src *">
<meta http-equiv="Content-Security-Policy" content="default-src * https: 'unsafe-eval' 'unsafe-inline'">

其他事实:

1) 如果我为iOS构建相同的应用程序,那么它可以正常工作。所以这只是Android的问题。

2)https上的Ajax请求有时在Android中有效,但很少。所以我不能说它们每次都被阻止,但我也无法找出它何时有效和何时无效的条件。但大多数时候它不起作用。

3)前段时间运行良好。我所说的行为不久前出现。我认为这个问题可能与服务器端的SSL证书有关(例如,它已过期),但桌面浏览器不会报告任何问题。URL字符串仍然是绿色的。


共有2个答案

巢嘉志
2023-03-14

确认!问题在于SSL证书。该服务器在Firefox中也无法访问。当我换了证书后,一切都开始正常了。

狄天逸
2023-03-14

在menifest中给予许可。xml文件

<代码>

标签

 类似资料:
  • 问题内容: 如何通过 HTTPS* 发送ajax GET 请求? * 抛出这个: 是否有其他方法或解决方法可以使此工作正常进行? 如果我使用 Chrome 浏览到该网址,则可以得到响应。我认为没有理由为什么它不能在ajax请求上正常工作。 问题答案: 如果您由于当前处于 同一来源策略 而无法访问该页面,则无法向该页面发出AJAX请求。 **** 的 主机 , 端口 和 方案 (协议)必须在为了使A

  • 问题内容: 通过AJAX从标准HTTP页面调用HTTPS页面(例如信用卡授权服务,例如WorldPay)是否会有问题? 我无法想象为什么会有问题,响应将是HTML页面,然后我可以将其嵌入结果窗格或类似的页面? 问题答案: 是的,这将是跨域发布,并且将被浏览器阻止。

  • 问题内容: 我知道以前已经以各种形式询问过这个问题,但是我似乎无法解决这个问题。我尝试使用jQuery和本机JS API发出Ajax请求。 我的情况如下(参见附图): 浏览器发出HTTP请求 服务器响应并设置持久性Cookie 浏览器发出HTTP Ajax请求,Cookie在那里 服务器响应预期,更新Cookie 浏览器发出HTTPS Ajax请求,Cookie不再存在(?!) 由于没有Cooki

  • 问题内容: 我的网站上有一些关于HTTPS连接的页面。从这些HTTPS页面中,我必须使用HTTP Ajax请求来进行一些错误检索,例如空白字段。但是此错误消息不会出现。是否有解决方案,或者我必须提出AJAX请求以通过HTTPS连接进行归档? 问题答案: 由于同源政策,这是不可能的。 您还需要将Ajax请求切换为https。

  • 正如标题所述,我有一个角指令在我的项目“/视图/模态/help.html”中加载模板 templateurl在localhost和仅使用http的测试服务器上运行良好。然而,当我访问使用https的服务器时,我会收到一个错误:“此请求已被阻止;内容必须通过https提供。” 我找不到任何关于如何将templateUrl与https结合使用的文档。感谢您的帮助!

  • 我了解了Firebase托管的标头配置,所以我这样做了: 在app中,在didChangeDependencies中有一个简单的firebase初始化,带有所需的数据。然后firebase auth . instance . signinwithemailandpassword(...)关于index.html的一段关于火垒的话: 我在Chrome中测试过很多次,总是失败。只有在localhost