Safari上的window.fetch()发生Cross Origin错误

时间:2016-09-07 16:08:30

标签: javascript safari xmlhttprequest cors fetch

我正在尝试使用window.fetch API和Polyfill以支持不支持的浏览器。

我的代码适用于Chrome和Firefox,但在Safari中失败(全部在Mac OSX上)。

function signup(fullname, email, restaurant, source) {
  return new Promise((resolve, reject) => {
    const params = `cm-name=${encodeURIComponent(fullname)}&cm-ottdth-ottdth=${encodeURIComponent(email)}&cm-f-hykuuh=${encodeURIComponent(restaurant)}&cm-f-hyurjd=${encodeURIComponent(source)}`;
    fetch(`http://tastyplc.createsend.com/t/d/s/ottdth/?${params}`, {
      method: 'get',
      mode: 'no-cors'
    })
    .then(response => response.text())
    .then(data => resolve(data))
    .catch(error => reject(Error(error)));
  });
}

我在Safari中收到以下错误:

  

XMLHttpRequest无法加载   http://tastyplc.createsend.com/t/d/s/ottdth/?cm-name=example&cm-ottdth-ottdth=example%40example.com&cm-f-hykuuh=Charlotte%20Street&cm-f-hyurjd=Website%20Sign%20Up。   来源http://localhost:3000不被允许   访问控制允许来源。

这可能与正在使用的polyfill相关 - 因为它提到 XMLHttpRequest (我假设polyfill回落)。

https://github.com/github/fetch

我做错了什么或丢失了什么?这让我疯了。

谢谢!

0 个答案:

没有答案