Как реализовать обработку 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, размещенного на ресурсе.