【问题标题】:Cordova 10 unable to post ajax to http urlCordova 10 无法将 ajax 发布到 http url
【发布时间】:2022-01-19 22:14:59
【问题描述】:

我正在尝试将 json 数据发送到 http url,但没有成功(我尝试将相同的数据成功发送到另一个 https)。 我有这个设置: config.xml

<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

AndroidManifest.xml

android:usesCleartextTraffic="true"

HTML 标头

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; img-src * data: 'unsafe-inline'; connect-src * 'unsafe-inline'; frame-src *;"> 
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src 'self' 'unsafe-inline' *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *">

<script>
  $.ajax({
    type: "GET",
    url: url,
    dataType: "jsonp",
    jsonp: 'callback',
    crossDomain: true,
    async: true,
    data: {
      id: results.rows.item(i).id,
      bolla: results.rows.item(i).bolla,
      anno: results.rows.item(i).anno,
      magazzino: results.rows.item(i).magazzino,
      articolo: results.rows.item(i).articolo,
      quantita: results.rows.item(i).quantita,
      term: terminale
    },
    success: function (data) {
      console.log(data)
    },
    error: function (xhr, textStatus, err) {
      alert("readyState: " + xhr.readyState);
      alert("responseText: " + xhr.responseText);
      alert("status: " + xhr.status);
      alert("text status: " + textStatus);
      alert("error: " + err);
    }
  });
</script>

如果我使用 json,它会返回 devicereadystate=0,如果我使用 jsonp,它会返回错误 devicereadystate=4error 404(如果我粘贴到浏览器它可以工作,则 url 是正确的)

【问题讨论】:

    标签: javascript android ajax cordova mobile


    【解决方案1】:

    我相信这是因为在使用 cordova-android 10.0.x 时,webview 现在充当 https 页面,您在使用 https 时无法加载/发送到非安全源。

    来自科尔多瓦文档

    默认情况下,WebViewAssetLoader 已启用并允许应用提供服务 他们的内容来自“适当的”来源。这将使路由工作 对于像 Angular 这样的框架来说很容易。

    无需额外配置,应用内容由 https://localhost/。您可以通过设置主机名来配置 首选项主机名。

       <preference name="hostname" value="localhost" />
    

    https 方案本质上是不可配置的。

    【讨论】:

      猜你喜欢
      • 2023-02-07
      • 1970-01-01
      • 2023-03-27
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多