强制Safari在jQuery GET请求中包含Origin标头

时间:2011-06-20 20:41:28

标签: javascript jquery ajax safari cross-domain

https://app.example.com我发出以下请求:

$.get('https://api.example.com', { foo: 'bar' })
  .success(getSuccess)
  .error(getError);

它适用于Chrome和Firefox,但不适用于Safari。 Safari不执行预检OPTIONS请求或包含Origin: https://app.example.com标头,因此服务器不会返回Access-Control-Allow-Origin: https://app.example.com标头。

是否有某种方法可以强制Safari包含Origin标头或执行预检OPTIONS请求?

1 个答案:

答案 0 :(得分:1)

您可以在beforeSend事件中向HTTP XHR请求添加标头。

类似的东西:

$.ajax({
  url: 'https://api.example.com',
  data: { foo: 'bar' },
  beforeSend: function(xhr) {
    xhr.setRequestHeader("Origin", "https://app.example.com");
}
})
.success(getSuccess)
.error(getError);