Как исправить «Ошибка: сбой XMLHttpRequest» в React Native с серверной частью Parse-Server - PullRequest
0 голосов
/ 15 февраля 2020

Сегодня у меня есть план по преобразованию iOS приложения (Swift) и Android (Java + Kotlin) в React Native. Это приложение отображает больницу как Маркер на (Google) Картах в зависимости от местоположения пользователя. Мой бэкэнд - Parser-Server (сейчас ParsePlatform)

Функция ниже запрашивает данные (класс) из бэкэнда Parse:

async getHospitalNearbyUser() {
        const { userLocation, region } = this.state
        if ((userLocation.lat !== null) && (userLocation.lng !== null)) {
            const lng = userLocation.lng
            const lat = userLocation.lat
            const radius = 1.0

            let lng_min = lng - radius / Math.abs(Math.cos(this.deg2rad(lat)) * 69)
            let lng_max = lng + radius / Math.abs(Math.cos(this.deg2rad(lat)) * 69)

            let lat_min = lat - (radius / 69)
            let lat_max = lat + (radius / 69)

            // query
            const atm = Parse.Object.extend('Hospital')
            let query = new Parse.Query(atm)
            query.greaterThan("lat", lat_min)
            query.lessThan("lat", lat_max)
            query.greaterThan("lng", lng_min)
            query.lessThan("lng", lng_max)

            query.find()
                .then(function (results) {
                    console.debug(results.length)
                })
                .catch(function (error) {
                    // There was an error.
                    console.error(error)
                })
        } else {
            console.debug('no location')
            console.debug(region)
        }
    }

Однако появляется ошибка:

Error: XMLHttpRequest failed: {"line":169557, "column:32", "sourceURL":"http://localhost:8081/index.bundle?platform=ios&dev=true&minifiy=false"

Я пытался найти в Google и Parse SDK- JS проблемы с github, но безрезультатно.

Надеюсь, что вам поможет.

Большое спасибо!

// Обновление: я использую Parse-Server, который расположен на Back4App.

Ответы [ 2 ]

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

Скорее всего, это проблема с AsyncStorage или https.

  1. . Убедитесь, что вы импортировали и правильно установили AsyncStorage.
import AsyncStorage from '@react-native-community/async-storage'

...

Parse.setAsyncStorage(AsyncStorage)
Parse.serverURL = 'https://parseapi.back4app.com/'

...

Do НЕ импортировать AsyncStorage из react-native, как предложено в другом ответе. Это устарело и не является правильным решением.

Убедитесь, что вы используете https://..., а не http://... для URL вашего сервера.

Надеюсь, это поможет.

0 голосов
/ 12 марта 2020

У меня была такая же проблема,

Я исправил это, изменив

import {AsyncStorage} from '@react-native-community/async-storage';

на

import {AsyncStorage} from 'react-native';
...