Javascript 强制Safari在jQueryGet请求中包含原始标头

Javascript 强制Safari在jQueryGet请求中包含原始标头,javascript,jquery,ajax,safari,cross-domain,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不执行飞行前选项请求或包含原点:https://app.example.com标头,这样服务器就不会返回访问控制允许来源:https://app.example.c

https://app.example.com
我提出以下要求:

$.get('https://api.example.com', { foo: 'bar' })
  .success(getSuccess)
  .error(getError);
它在Chrome和Firefox中运行良好,但在Safari中不起作用。Safari不执行飞行前选项请求或包含
原点:https://app.example.com
标头,这样服务器就不会返回
访问控制允许来源:https://app.example.com
标题


是否有办法强制Safari包含
Origin
标题或执行飞行前选项请求?

您可以在
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);

Origin
是一个受限标题,不能通过JavaScript手动设置。Safari不支持此标题,但限制手动添加?据我所知,所有主要浏览器都限制添加Origin。Safari支持POST/DELETE请求(可能还有其他请求)的来源。理想情况下,有一些“enableoriginforget requests=true”选项。