运行 在调用 Google 地图时进入 COORS API
Running into COORS when calling Google Maps API
我在我的 React 应用程序中使用 webpack-dev-middleware
。当我在 index.html
中提供 google 地图资产时,效果很好,但是,我想使用 axios
在 React 组件中获取这些资产,当我这样做时,我收到以下错误:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
我已经尝试在 webpack-dev-middleware
内设置这些设置,但我仍然遇到同样的问题:
webpackDevMiddleware(bundler, {
...
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, PATCH, DELETE',
'Access-Control-Allow-Headers': 'X-Requested-With,content-type',
'Access-Control-Allow-Credentials': true
}
}),
所以我找到了几个成功的解决方案:
1) 我动态创建了一个指向 google 映射目标的脚本文件并将其注入到 DOM
const script = document.createElement('script');
script.setAttribute('src', 'https://maps.googleapis.com/maps/api/js?key=.....');
document.body.appendChild(script);
2) 在意识到我基本上是在重建 JSONP
正在做的事情后,我选择使用 JSONP
方法,您可以使用 jquery axios
方法或使用类似的模块jsonp
.
我在我的 React 应用程序中使用 webpack-dev-middleware
。当我在 index.html
中提供 google 地图资产时,效果很好,但是,我想使用 axios
在 React 组件中获取这些资产,当我这样做时,我收到以下错误:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
我已经尝试在 webpack-dev-middleware
内设置这些设置,但我仍然遇到同样的问题:
webpackDevMiddleware(bundler, {
...
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, PATCH, DELETE',
'Access-Control-Allow-Headers': 'X-Requested-With,content-type',
'Access-Control-Allow-Credentials': true
}
}),
所以我找到了几个成功的解决方案:
1) 我动态创建了一个指向 google 映射目标的脚本文件并将其注入到 DOM
const script = document.createElement('script');
script.setAttribute('src', 'https://maps.googleapis.com/maps/api/js?key=.....');
document.body.appendChild(script);
2) 在意识到我基本上是在重建 JSONP
正在做的事情后,我选择使用 JSONP
方法,您可以使用 jquery axios
方法或使用类似的模块jsonp
.