React 中 Mailchimp 订阅期间的脚本错误

Script error during Mailchimp subscription in React

我正在尝试使用 this npm module 实现通过双重选择加入订阅 Mailchimp 时事通讯的可能性。

据我所知,在插件作者提供的 example 中,一切看起来都很简单,而且示例有效。但是,当我以最简单的方式在本地尝试时,就像在示例中一样,但使用正确的 URL、id 和 u 参数时,它总是给我这个错误:

Loading failed for the with source “https://xxx.us17.list-manage.com/subscribe/post-json?u=e11e628c90e2d07b9bd406c69&id=9e0ccb1924&EMAIL=name%40domain.tld&c=__jp0”.

(注意:当然我更改了子域中的电子邮件地址和客户端名称,以免使它们成为public。)

所有这些都发生在我使用 create-react-app 运行 在本地创建的 React 应用程序中。 Mailchimp 提供的默认 AJAX 订阅表格也不起作用。它给了我同样的错误。

我已经尝试、搜索并查找了导致此错误的无数可能和不太可能的原因,但到目前为止没有任何效果,看来我终于无计可施了。

由于应用程序在本地运行并使用默认 create-react-app 设置,以上是否可能是某种与 SSL/TLS 相关的错误、CORS 问题或(注意 __jp0 在错误消息中的 URL 末尾)一些或多或少模糊的 JSONP 问题?如果是这样,关于发生了什么或我可能做错了什么的任何线索?

我希望我已经足够透明地解释了自己。非常感谢任何帮助。

编辑:

当我使用浏览器调用错误消息中的 URL 时,我得到了这样的响应:__jp0({"result":"success","msg":"Thank you for subscribing!"})

所以订阅确实有效,响应似乎确实是 JSONP。问题是,这是实际错误还是其中一部分。

编辑:2018-01-11:

甚至没有人知道我的问题的可能答案?有人吗?我只是像 tar 一样厚吗?

我仍然没有解决这个问题,我仍然不知道为什么我得到一个 JSONP 字符串,当我使用的 npm 包实际上应该能够处理这个问题时,每个浏览器都会出现错误。由于它已经通过下面一位有用的用户的评论建立,我在通过 create-react-app 创建的应用程序中使用 JSONP/action url 表单。我尝试了以下 npm 模块,用于向应用程序添加简单的表单,在将您的电子邮件地址发送到 mailchimp 后为您提供反馈。

实际订阅甚至有效,但 Firefox 给我错误:Loading failed for the <script> with source […] 其他浏览器也一样。我尝试了以下 npm 模块:

到目前为止,任何一个都没有骰子。也许我的理解在这里有缺陷,但我至少对这些假设是正确的:

再次感谢任何关于我做错了什么的新线索(显然我一定是做错了什么)。

mailchimp api 不支持 CORS,因此您无法从客户端调用 mailchimp API。

CORS Policy

我现在知道是什么原因造成的了。问题似乎是跟踪。

我已经关闭了所有 Firefox 插件和其他浏览器中的所有插件,我试图让它在其中工作,所以 adblocker 不是罪魁祸首,因为我在发布此问题之前已经确定。在 Firefox 中,当我将跟踪选项设置为 "Never" 或 "Only in private windows" 并在私有 window.

中尝试时,它突然起作用了

有趣的是,浏览器应该向我显示一条消息,告诉我请求或响应已被阻止,因为有跟踪选项。再次关闭所有插件并将跟踪选项从最大隐私显式切换到适度设置后,我收到了错误消息,所以我将其完全关闭,然后它突然起作用了。

至此我知道了跟踪选项的罪魁祸首,但似乎也存在浏览器错误。

我暂时将此标记为解决方案,但如果有人知道更多,我愿意接受建议。