我将 GWT 与 Restlet 一起使用,并希望将删除发送到我的 Restserver。这是我发送的客户代码:
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]
我已经在这里找到了一个帖子:浏览器在更改 http 标头后发送选项而不是帖子,但这并不能解决我的问题。对于 POST 和 GET,它可以工作,但只能使用 Firefox 插件来解决 SOP 问题,也可以添加新标头,但添加 PUT、DELETE 和 OPTIONS 并不能解决此问题。
有谁知道这个的解决方案,提前谢谢
编辑
我在服务器端尝试过这样的事情,但他仍然带有 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);
}