Как реализовать обработку AJAX-запросов с использованием WT?

Я отправляю JSON на URL localhost/ JSON. как я могу обработать этот запрос? как это вообще происходит? Нужно ли реализовывать мой собственный WResource, WServer, WApplication и что-то еще? Пожалуйста, объясните мне, как работает с ним с помощью Wt.

/* in LoginForm() */
...
client.done().connect(this, &LoginForm::receiveJSONresponse);
...


void LoginForm::sendLogInRequest()
{
    Json::Object data;
    data["action"] = "login";
    data["username"] = usernameTextEdit.text();
    data["password"] = passwordTextEdit.text(); 
    Http::Message msg;
    msg.addHeader("Content-Type", "application/json");
    msg.addHeader("Accept", "application/json");
    msg.addBodyText(Json::serialize(data));
    client.request(Http::Post, "http://localhost/json", msg);
}

1 ответ

Решение

Вам нужно будет специализировать WResource и в handleRequest() просмотреть данные, которые были опубликованы.

WResource может использоваться двумя способами: для конкретного сеанса или глобального. Ресурс, относящийся к сеансу, имеет случайный URL, а глобальный ресурс имеет указанный (постоянный) URL.

Для того, что вы просите, чтобы присоединить ресурс к localhost/json, ресурс должен быть прикреплен к фиксированному URL, так что вы действительно делаете это через API WServer. Посмотрите на пример блога, чтобы увидеть, как BlogRSSFeed разворачивается как статический ресурс. Вы можете использовать это в качестве начальной точки и изменить handleRequest для обработки json, размещенного на ресурсе.

Другие вопросы по тегам