我正在尝试使用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
我做错了什么或丢失了什么?这让我疯了。
谢谢!