【发布时间】:2012-08-17 16:24:03
【问题描述】:
/*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()),浏览器发送而是使用空实体的选项。
如果我没有添加上面的代码,它确实会发送正确的 POST
这发生在 Opera、Firefox 和 Chrome 上(如果我使用 --disable-web-security 启动 chrome 可以正常工作),所以我认为这仍然是浏览器安全问题,谁能解释为什么会发生这种情况?有什么解决办法?
【问题讨论】:
标签: http backbone.js cross-domain restlet cors