Как отправить http-запрос из приложения на Qt 5.15.2 WebAssembly (Emscripen) с помощью QNetworkAccessManager?

Нижеследующий код идеально выполняется в десктопном приложении, но возвращает ошибку QNetworkReply::ContentNotFoundError(=203) при обращении по любому адресу с протоколом http. С чего бы это? Как заставить работать?

void SignUpWidget::on_ackButton_clicked()
{
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);

    //TODO: from settings
    QUrl url(QString("http://localhost:80/"));
    QNetworkRequest request(url);

    //application/json
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

    QUrlQuery params;

    connect(manager, &QNetworkAccessManager::finished, [](QNetworkReply *reply) {
                auto data = reply->readAll();
            //    reply->header()
                QMessageBox *msgBox = new QMessageBox;
                msgBox->setText(reply->request().url().toString() + "-" + QString::number(reply->error()) + "-" + data);
                msgBox->setWindowTitle("Reply1");
                msgBox->show();
            });

    manager->post(request, params.toString(QUrl::FullyEncoded).toUtf8());
}

reply->request().url().toString() и reply->readAll() возвращают пустую строку

Kit: Qt 5.15.2 WebAssembly (Emscripen)

Вроди бы пишут:

Network access: the web sandbox limits network access to a subset of what is available for native apps.

то есть, если я правильно понял, должны быть те же ограничения для доступа к сети, что и у десктопного приложения (?), тогда почему десктопное работает, а веб-ассемблерное нет? Или речь идет об ограничениях браузера? Ну и в этом случае в javascript ведь можно сделать http-запрос...

PS С методом GET та же история


Ответы (1 шт):

Автор решения: Spatz

Смысл взятой из документации фразы

Network access: the web sandbox limits network access to a subset of what is available for native apps.

в том, что для WebAssembly доступна только часть функционала нативных приложений.

И далее идут разъяснения, в частности для QNetworkAccessManager

QNetworkAccessManager http requests to the web page origin server, or to a server which supports CORS.

т.е. стандартные ограничения политики CORS.

→ Ссылка