В React мой запрос на получение POST работает на настольном компьютере, но не на iPad в Chrome, что не так? - PullRequest
0 голосов
/ 17 мая 2019

Цель этого действия - отправить данные в формате JSON с использованием fetch в разделе React.Он отлично работает в настольных браузерах, но не в iPad (Chrome 63.0.3239.73).Действие заключается в заполнении формы, нажмите кнопку «Отправить», затем вызовите функцию setRedirect, и код, приведенный ниже, будет выполнен.Даже после нескольких часов поиска я не могу найти решения ...

Мне удалось увидеть, что некоторые ошибки были связаны с тем, что iOS допускает только https-соединения, я исправил это, но все же нет ...

setRedirect = (e) => {
        e.preventDefault();
        const jsonFile = JSON.stringify(
            {
                birthday: this.state.birthday, 
                country: this.state.country,
                email: this.state.email,
                firstname: this.state.firstname,
                lastname: this.state.lastname,
                newsletter: this.state.newsletter,
                offers: this.state.offers,
                phone: this.state.phone,
                screenSize: window.innerWidth,
                zipCode: this.state.zipCode
            }
        )
    console.log(jsonFile)
            if(window.fetch) {
                fetch("https://url.fr/event/player/save/",{
                    credentials: 'include',
                    headers: {
                        'Accept': 'application/json',
                        'Content-Type': 'application/json'
                    },
                    method: "POST",
                    body: jsonFile
                })
                .then(response => response.json())
                .then((jsonData) => {
                    console.log("reponse serveur",jsonData);
                    this.setState({
                        step: jsonData.code
                    })
                    localStorage.setItem("step",jsonData.code);
                    console.log("step local storage : ",localStorage.getItem("step"));
                    alert('response : '+jsonData);
                })
                .catch((error) => {
                    // handle your errors here
                    console.error(error)
                })
            }
    }

Этот код работает в настольных браузерах без ошибок, но на Chrome iPad после нажатия кнопки (ввод ввода) ничего не происходит и ничего не отправляется.Если вам нужна дополнительная информация, я здесь.

1 Ответ

0 голосов
/ 17 мая 2019

Собственная выборка поддерживается только в iOS версии 10.3 или выше.На старых устройствах выборка может быть использована с использованием полифилла: https://github.com/github/fetch

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