Я использую GWT с Restlet и хочу отправить удаление на мой Restserver. Это мой код клиента для отправки:Браузер отправляет OPTIONS вместо PUT или DELETE
private void recipeDeleteButton() {
String id = views.getViewRecipeDetail().getRecipeId().getText();
ClientResource res = new ClientResource(Rest.RECIPE_CLIENT_RESOURCE_LOCAL + id);
res.setOnResponse(new Uniform() {
@Override
public void handle(Request request, Response response) {
System.out.println(response.getStatus().getDescription());
}
});
res.delete();
}
Но когда я хочу, чтобы проверить это мой Firefox говорит:
[22:28:28.796] OPTIONS http://localhost:8182/recipe/35 [HTTP/1.1 405 Method Not Allowed 3ms]
я нашел уже пост здесь: browsers send Options instead of Post after changing http header но это не решает мой проблема. Для POST и GET он работает, но только с помощью Firefox Addon для решения проблемы с SOP, также есть возможность добавлять новые заголовки, но добавление PUT, DELETE и OPTIONS не решает эту проблему.
Кто-нибудь знает решение этой, заранее спасибо
EDIT
Я пытался что-то вроде этого на ServerSide, но он по-прежнему поставляется с 405.
Series<Header> responseHeaders = (Series<Header>) getResponse().getAttributes().get("org.restlet.http.headers");
if (responseHeaders == null) {
responseHeaders = new Series<Header>(Header.class);
responseHeaders.add(new Header("Access-Control-Allow-Origin", "*"));
responseHeaders.add(new Header("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS"));
getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
}
Я пробовал это, но он не работает, это все еще http 405 – pfu
Проблема в том, что ваш http: // localhost: 8182/recipe/35 не имеет обработчика запроса OPTIONS (я предполагаю, что у него есть обработчики для GET и УДАЛИТЬ). Легкий способ - создать глобальный обработчик на сервере для всех запросов OPTIONS независимо от пути или создать обработчик OPTIONS для/recipe/35. – YoK
Вы правы, это очень просто. Я просто добавил над аннотацией «Удалить» аннотацию «Параметры», теперь она работает. Огромное спасибо! – pfu