Javascript отправка почтовых данных в асинхронной среде - PullRequest
0 голосов
/ 24 января 2020

Итак, моя проблема в том, что я получаю данные с другого сервера, и я пытаюсь отправить полученные данные на тот же URL, чтобы иметь возможность получить данные в PHP. Я попробовал это с fetch(), $.post(), $.ajax(). Каждый раз мой xhr запрос отменяется браузером по неизвестной причине. Вот мой текущий код:

function generateCodes()
    {
    var someVAR = document.getElementById("length").value;
    var someResult = createDataPromise("someVAR=" + someVAR);

    someResult.then((data) => 
        {
        var jsonData = JSON.stringify(data);

        $.ajax(
            {
            url: "sameURL",
            method: "post",
            data: jsonData,
            success: function(data)
                {
                console.log(data);
                }
            });
        });

    someResult.catch((error) =>
        {
        console.error("Server responded with error: " + error);
        });
    }

function createDataPromise(data)
    {
    return new Promise((resolve, reject) => 
        {
        const xhr = new XMLHttpRequest();
        xhr.open("POST", "externalServer");
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        xhr.onload = () => resolve(JSON.parse(xhr.responseText));
        xhr.onerror = () => reject(xhr.statusText);
        xhr.send(data);
        });
    }

Есть ли другое возможное решение для доступа к объекту javascript в PHP? (Невозможно преобразовать переменную, потому что javascript находится в чистом js файле)

1 Ответ

0 голосов
/ 24 января 2020

Возможно, браузер блокирует ваш запрос из-за CORS. Если вы измените ваш запрос на соответствие CORS или убедитесь, что удаленный ответ содержит заголовок Access-Control-Allow-Origin: *, это исправит это. Проверка того, что ваш запрос считается простым запросом , исключает вероятность того, что он отклоняется предварительным запросом, так как вам нужно только отправить данные и не получить их обратно в javascript.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

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