newsapi.org API 和 JQuery 问题

Issue with newsapi.org API and JQuery

我收到以下错误消息:

Failed to load resource: the server responded with a status of 426 (Upgrade Required)" error on using JQuery to GET results from https://newsapi.org/v2/top-headlines?country=in&apiKey=..... using proxy-https://cors-anywhere.herokuapp.com/ on a ngrok hosted https site and the localhost too.

但如果我使用 http 而不是 httpshttps://cors-anywhere.herokuapp.com/https://newsapi.org/... 并使用 http ngrok 站点,则相同的过程会起作用。

这是我使用 http-

时得到的响应

{status: "error", code: "corsNotAllowed",…} code: "corsNotAllowed" message: "Requests via the browser are not allowed on the Developer plan, except from localhost." status: "error"}

有解决办法吗?我会使用我的域和 ssl 正确托管它吗?

您正在尝试访问一个 API,它不接受来自网站的请求(localhost 除外)。如果浏览器遇到跨源请求,它会尝试发出飞行前请求(向服务器发出初始请求,可以从这个与当前域不同的远程地址获取)。如果未使用成功消息响应飞行前请求,则 Ajax 请求失败。这种行为称为 CORS,它必须得到 API.

的支持

您的 API 似乎不允许,即它实际上明确禁止 CORS 请求。如果 API 想要强制开发人员在服务器端发出请求,通常会这样做。这样做的好处是,访问密钥不会与 JavaScript 代码一起发送给网站的访问者,而是保留在服务器上。

尝试在您的服务器上发出请求,然后将数据从您自己的服务器发送到您的前端。这也允许使用您自己的身份验证。您也可以在任何地方使用 CORS 等 Web 服务,但请记住,该服务可以访问您发送和接收的所有数据(并且能够双向修改数据)。