拒绝得到不安全的标题"位置"

Eug*_*lov 8 javascript php ajax cross-domain-policy google-closure

我有一个网站和我的REST api服务器.

我向REST服务器发出ajax post请求以创建新模型.此请求的答案将是"HTTP/1.1 201 Created"响应,标题为"Location:http://myapi.com/some/path/111 "但我收到错误消息Refused to get unsafe header "Location".我知道这是因为跨域访问策略和其他bla bla bla.

有谁知道如何解决它?也许我必须在响应中添加"Access-Controll-Allow-SOMETHINGHERE"标题?

UPD:

网站URL http://www.mydomain.com/

原始URI是http://api.mydomain.com/model/,新的位置URI是http://api.mydomain.com/model/211

原始URI用于ajax POST请求,该请求使用新的Location头进行响应.

MeT*_*TeO 6

这是因为默认情况下,Location头不会暴露给调用客户端(在本例中是你的ajax代码)(它是'不安全的').要公开它,你必须返回额外的标题:

Access-Control-Expose-Headers: Location
Run Code Online (Sandbox Code Playgroud)

这样浏览器就会公开它,所以客户端可以读取它.您可以添加多个逗号分隔的标头.更多关于它的信息.在这里,您可以阅读哪些方法,标题和内容类型是安全的(简单),并且不需要任何其他配置.


Jef*_*Day 1

我只需解决这个问题,要么通过调用返回新位置作为值,要么让客户端代码知道新创建的项目的存储位置。

另一种选择是为原始域上的调用创建代理。