«Реактивный» не извлекает контент с внешне видимого сервера фляги - «Сбой сетевого запроса» при разработке - PullRequest
0 голосов
/ 20 октября 2019

У меня есть локальный сервер фляги, который имеет конфигурацию flask run --host:0.0.0.0, как указано в документации. Вместо того, чтобы получать ответ от моего флеш-сервера, когда я вызываю его из реактивной системы, я получаю эту ошибку:

- node_modules\react-native\Libraries\vendor\core\whatwg-fetch.js:504:29 in onerror
- node_modules\event-target-shim\lib\event-target.js:172:43 in dispatchEvent
- ... 8 more stack frames from framework internals"

Во всех примерах, которые я нашел по этой проблеме, были люди, использующие "localhost", который не являетсячто я делаю, и шаги по устранению неполадок не сработали. Я использую expo, которая обрабатывает функцию 'fetch' из вызова ниже. Это еще не приложение для Android или ios, так как код все еще находится на ранних стадиях.

активный вызов:

export function get_page(){
    url = 'http://<local ipv4 address>:5000/'
    return fetch(url)
    .then((response)=>{
        console.log(response)
        return response
    })
    .catch((error) =>{
        console.log(error)
        return error
    })
}

простой код Python:

@app.route('/')
def hello_world():
    return "Hello, World!"

Опять же, я получаю сетевую ошибку только после некоторого времени, потраченного на попытку подключения. Когда я получаю доступ к URL-адресу из Firefox или IDLE Python, я вижу страницу, что означает, что она строго связана с моей реагирующей средой.
Любая помощь приветствуется, как всегда.

1 Ответ

0 голосов
/ 20 октября 2019

это сетевое разрешение. сегодня android и ios не разрешают HTTP-соединение по умолчанию

для Android, вы должны добавить networkSecurityConfig в AndroidMainfest.xml

<application
   ...
 networkSecurityConfig="@xml/networkConfig"
 .../>

 //the config content like below

<network-security-config>
//one way allow all http connection
<base-config cleartextTrafficPermitted="true"/>
// the other way allow some fixed url
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>

</network-security-config>

для ios, вы должны добавить адрес в информацию. plist

<key>address</key>
<dict>
  <key>NSExceptionAllowsInsecuredHTTPLoads</key>
  <true/>
 <key>NSExceptionRequiresForwardSecrecy</key>
 <true/>
 <key>NSIncludesSubdomains</key>
 <true/>
 </dict>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...