当前位置: 首页 > 知识库问答 >
问题:

如何用https://newsapi.org/[duplicate]解决CORS问题

云洋
2023-03-14

我想知道是否可以从客户端解决这个问题,因为我在内部没有任何访问API的权限。

有人能帮我解决这个问题吗?

以下是newsactions.js的代码:

import * as types from './actionTypes';

const API_KEY = "<Redacted>";

export const getNewsApi = () => {
  debugger;
  return (dispatch, getState) => {
    dispatch({
      type: 'API_REQUEST',
      options: {
        method: 'GET',
        service: 'news',
        mode: 'cors',
	    headers:{
	        'Access-Control-Allow-Origin':'*'
	    },
        endpoint: `https://newsapi.org/v2/top-headlines?country=us&category=business&apiKey=${API_KEY}`,
        actionTypes: {
          success: types.GET_NEWS_API_SUCCESS,
          error: types.GET_NEWS_API_ERROR
        }
      }
    });
  }
}
var express = require('express');
var app = express();

var cors = require('cors');

let __homeglobals = [];

app.use(cors());
app.set("jsonp callback", true);


var server = app.listen(8082, function () {
   var host = server.address().address;
   var port = server.address().port;
   
   console.log("Example app listening at http://%s:%s", host, port);
});

如果您需要更多的信息或有问题,请在下面评论。

谢谢你。

共有1个答案

关飞翔
2023-03-14

您可以通过从您的原点(web服务器)代理到API服务器来解决跨原点问题。

更改客户机代码中的调用,以便将请求发送到/api/whather(故意缺少方案、主机和端口,因此使用为页面服务的端口)。从客户端的角度来看,这不再是对不同主机的请求。

我想在您分派的操作中,这对应于更改endpoint属性:

endpoint: `/api/top-headlines?country=us&category=business&apiKey=${API_KEY}`
var proxy = require('http-proxy-middleware');

app.use('/api', proxy({target: 'https://newsapi.org/v2'}));
 类似资料:
  • 问题内容: 我正在尝试通过React应用程序中的Redux动作和reducers进行api调用。 但是,我的浏览器出现了这个CORS问题。 我想知道我是否可以从客户端解决此问题,因为我内部没有对API的任何访问权限。 谁能帮我解决这个问题? 这是newsActions.js的代码: 这是server.js的代码: 如果您需要其他信息或有疑问,请在下面对其进行评论。 谢谢。 问题答案: 您可以通过将

  • 我已经部署了我的第一个netlify站点,它只是从airtable返回一些记录: https://codefy-airtable.netlify.app/.netlify/functions/courses 它也适用于我设置的重定向:- https://codefy-airtable.netlify.app/api/courses 然而,当我在webflow中将axios get函数添加到我的头脚

  • 我正在尝试使用Cloudfront HLS功能设置视频流,但在获取HLS时遇到了问题。js在请求中发送我的凭据cookie。 我已经将Cloudfront配置为转发Cookie和转发访问控制头。我还将我的S3 CORS策略设置为包括GET、HEAD。 我遇到的问题是,即使我设置了xhr.withCredentials=true,并且在会话中定义了cookie,当我使用chrome控制台查看请求时,

  • 我试图在我的Ionic Angular应用程序中执行以下函数,cloudFunctionUrl是我在firebase项目中的一个云函数: 为了解决CORS问题,我安装了允许CORS:Access-Control-Allow-Origin chrome插件。以下是白名单域的列表: null 我遇到了两个问题: null 有人能告诉我怎么解决这件事吗? 我也尝试将下面的头添加到请求中,但错误仍在出现:

  • 我正在使用第三方API,从中我得到以下错误: CORS 策略已阻止从源“https://mydomain.xyz”访问位于“https://myapi/..”的 XMLHttpRequest:对预检请求的响应未通过访问控制检查:请求的资源上不存在“访问控制-允许源”标头。 我想知道如何在我的应用程序中启用CORS策略。我的. htAccess文件是: 我正在使用Laravel应用程序。提前感谢。