我使用 create-react-app 来构建我的反应应用程序。这个应用程序对另一个 API(elasticsearch)进行 POST 调用,该 API 托管在不同的服务器上(不是我拥有/管理的)。因此,一旦用户在表单中输入数据,onSubmit 基本上会调用 getResponse() 方法来进行调用。初始化客户端:
let client = new elasticsearch.Client({
host: "https://{cred.user}:{cred.pass}@@servername.domain:11121",
log: "trace",
});
接口查询:
getResponse = () => {
client
.search({
index: 'custom_index_1',
body: {
query: {
match: {"data": this.state.data}
},
}
},function(error, response, status) {
if (error) {
const errorMessage= {error};
console.log(errorMessage);
}
else {
this.setState({results: response.hits.hits});
console.log(this.state.results);
}
});
}
但我收到如下 CORS 错误:
Failed to load resource: the server responded with a status of 403 (Forbidden)
localhost/:1 Access to XMLHttpRequest at 'https://servername.domain:11121/' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.console.js:40
WARNING: 2019-11-21T07:54:32Z No living connections
在阅读了关于相同问题的 SO 后,我发现使用 cors npm 模块可以解决这个问题(至少在开发中)。但我不明白我把这段代码放在哪里:
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
我的问题如下: 1.我在哪里添加上面的代码?在我的反应应用程序的 app.js 中?如果是的话,有人可以给我一个例子吗?我正在使用这样的东西:
import statements
class App extends Component {
<code>
}
export default App;
如果要将此代码添加到其他文件中,那么是哪个文件?是 server.js 吗?如果是,我在哪里可以找到这个?我使用的是 Windows 7。节点安装在客户目录中:C:\MYSW\NodeJs\12.1.0。我在这里看到了一些 server.js:C:\Users\user1\Scratch\node\myreact_ui\node_modules\react-dom\server.js,但它是正确的文件吗
请给我一个示例,说明如何添加代码以及文件中的确切位置。我是 React 和 Node 的新手,所以我不太了解内部结构。我已经被困在这里好几天了,真的需要一些帮助。谢谢。
到处都是,添加此代码并且它可以工作,没有人提到我在哪里添加它以及如何添加它?任何帮助表示赞赏。
慕工程0101907
慕容3067478
慕尼黑8549860
相关分类