/*set the response header*/
Form responseHeaders = (Form) getResponse().getAttributes().get("org.restlet.http.headers");
if (responseHeaders == null) {
responseHeaders = new Form();
responseHeaders.add("Access-Control-Allow-Origin", "*");
responseHeaders.add("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE");
getResponse().getAttributes().put("org.restlet.http.headers", responseHeaders);
}
我在我的restlet 2.0代码中添加了这个以允许跨域访问,这确实使第一个GET在页面加载时工作,但是当我稍后尝试做POST(使用主干model.save())时,浏览器发送带有a的选项而是空实体。
如果我没有添加上面的代码,它确实会发送正确的 POST
这发生在 Opera、Firefox 和 Chrome 上(如果我用 --disable-web-security 启动 chrome 可以正常工作),所以我认为这仍然是一个浏览器安全问题,谁能解释为什么会发生这种情况以及可能是什么修复?