Мне нужна помощь, чтобы получить xmlhttprequest в работе Cordova - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь получить простой xmlhttprequest (GET), работающий в Cordova. У меня есть следующий метатег в индексе. html:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

А затем для конфигурации. xml У меня есть следующее:

  <access origin="*" />
  <allow-intent href="http://*/*" />
  <allow-intent href="https://*/*" />
  <allow-intent href="tel:*" />
  <allow-intent href="sms:*" />
  <allow-intent href="mailto:*" />
  <allow-intent href="geo:*" />
  <allow-navigation href="http://*/*" />
  <allow-navigation href="https://*/*" />
  <allow-navigation href="data:*" />

Затем в индексе . js, у меня есть следующее:

hitTheNetz: function() {
    alert("Hit the Netz Boyz!");
    var oReq = new XMLHttpRequest();
    //oReq.addEventListener("load", reqListener);
    oReq.open("GET", "http://10.0.0.56:8080/test");
    oReq.send();     
},
// Application Constructor
initialize: function() {
    document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
document.getElementById("testRequest").addEventListener("click", this.hitTheNetz);
},

и это в функции инициализации:

    document.getElementById("testRequest").addEventListener("click", this.hitTheNetz);

Я проверил код на веб-странице - это работает, если я нажмите на страницу с телефона, чтобы я знал, что код работает в браузере ... Похоже, мне не хватает чего-то базового c в приложении Cordova, и я не уверен, как его найти или исправить ,

1 Ответ

0 голосов
/ 03 апреля 2020

ОК, нашел ответ, но ему пришлось пройти через NativeScript, чтобы найти его.

Android 8+ отключает отправку запросов в виде открытого текста (http). Вы должны включить это. Куда? Рад, что вы спросили.

В конфигурации. xml, измените строку 'widget', добавьте следующее:

xmlns:android="http://schemas.android.com/apk/res/android"

, затем убедитесь, что у вас есть следующее:

  <platform name="android">
      <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
      <application android:usesCleartextTraffic="true" />
  </edit-config>
  </platform>

это должно прояснить. Не знаю, почему это не первое попадание в последние запросы по этому вопросу. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...