将网站部署到Netlify后,从newsapi.org收到426错误

5

当我在本地主机上尝试我的项目时,由于CORS问题,使用https://cors-anywhere.herokuapp.com/它表现良好。但是一旦我将网站部署到Netlify上,使用或不使用https://cors-anywhere.herokuapp.com/都会给我错误426(需要升级)。这些是出现在我的控制台上的消息:

>Failed to load resource: the server responded with a status of 426 (Upgrade Required)

>Error: Request failed with status code 426
    at createError.js:16
    at settle.js:17
    at XMLHttpRequest.<anonymous> (xhr.js:61)

我一直在搜索,有些人似乎遇到了类似的问题。我看到了一些解决方案,比如拥有自己的服务器来传递请求,但我不知道如何操作,如果我错了,请纠正我,那难道不与使用https://cors-anywhere.herokuapp.com/相同吗?

4个回答

9

Newsapi修改了他们的定价模型。

你不能再从浏览器中发起请求,而需要使用后端。我曾经遇到过同样的问题,最简单的解决方法是实现一个Node(Express)服务器。


1
谢谢,我不会创建Node服务器,因为我不知道如何操作,但由于这是一个学校项目,我可以在本地展示它。还是谢谢你的建议。 - Pablo Torres
我遇到了同样的问题,如何开始构建一个Node(Express)服务器?谢谢。 - cyberAnn
@Ozark19 你好,我应该在哪里建立Node Express服务器以解决426问题?谢谢。 - cyberAnn
这个教程对我来说是一个很好的开始。我不确定你在使用什么前端,但我在我的项目中使用了React,并展示了如何连接它们。它将教你如何从前端向后端发出请求,以及从后端向API发出请求。 - Ozark19

1

正如其他人提到的那样,Newsapi不再允许您在浏览器中发出请求。

Newscatcher 有一个无需信用卡的免费套餐,可以进行10,000次请求。此外,根据您的使用情况,甚至可以通过邮件与他们联系,在短时间内增加限制或添加额外数据点。


1
我猜免费计划在生产中已不再可用。
“除了本地主机外,浏览器的请求在开发者计划中是不被允许的。”
这是更新后的计划页面。 https://newsapi.org/pricing

谢谢,我想我必须在本地展示我的项目。 - Pablo Torres

1
实际上,开发者计划中的newsapi.org API在生产中不再起作用。因为在开发者计划中,CORS仅对本地主机启用。
开发者计划 $0 CORS仅对本地主机启用。 https://newsapi.org/pricing 但是,如果您想在生产中获取新闻,则有一个替代方案,它每月提供1000个免费请求,并且在生产中也可以使用。 https://newsapi.in/ Newsapi.in这个网站提供了一个API,它对所有来源启用了CORS。
尽情享受吧...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接