所以我不太确定自己在做什么错,但是在尝试对追逐硬币进行API调用时,我遇到了跨域请求阻止的问题。显示了两个原因:
这是我的代码
d3.selectAll("g").filter("div > g").classed("temp", true);
d3.select("div").insert("g", ".temp:nth-of-type(3)").attr("class", "new");
d3.selectAll(".temp").classed("temp", false);
我在做什么错了?
编辑:不确定这是否有所不同,但是我使用的是localhost并测试了firefox和chrome,两者均无法工作
答案 0 :(得分:0)
这与托管API的服务器的CORS问题有关。源API尚未设置允许浏览器从不同来源请求资源的配置,因此使用浏览器从不同来源发出的任何请求都将出现预检错误。
在TCP / IP握手请求期间发生预检错误,并且此刻已确认源,如果服务器未配置为处理跨源请求,浏览器将无法按预期完成请求。 / p>
要解决此问题,您将需要使用诸如nodejs之类的后端服务器来查询API并将其存储到您的前端代码中。这将起作用,因为从外部API请求资源时,nodejs没有CORS策略。
这也是CURL和Postman之类的应用程序可以与API一起使用的原因,因为它们也不会对请求执行CORS策略。