我正在尝试从react前端查询我的Azure搜索门户。我已启用正确索引上的所有COR。当我用fetch查询时,我得到的数据很好,但是当我用axios查询时,我得到了以下错误
CORS策略阻止从源http://localhost:3000在maskedurl访问XMLHttpRequest:对预试请求的响应不通过权限改造检查:请求的资源上不存在访问控制允许源标头。
这是我的组件
import React from 'react';
import azure from '../apis/azure';
class GeoSearch extends React.Component {
state = {
lat: '',
lon: ''
}
componentDidMount(){
window.navigator.geolocation.getCurrentPosition(
position => this.setState({ lat: position.coords.latitude, lon: position.coords.longitude }),
err => this.setState({ errorMessage: err.message }),
);
};
onNavLoad = async (lon, lat) => {
const response = await azure.post('/', {
params: {
"filter": "geo.distance(Location, geography'POINT(-6.184120 53.605190)') le 4",
"Access-Control-Allow-Origin": "*"
},
headers: {
'api-key': 'apikeymasked',
"Access-Control-Allow-Origin": "*"
},
});
console.log(response);
}
render() {
if (this.state.lat){
return (
<div>
<h1>Geo Search</h1>
<div>{this.state.lon}</div>
<div>{this.state.lat}</div>
<button onClick={this.onNavLoad}>Click</button>
</div>
)
}
return (
<div>
<h1>Geo Search Loading</h1>
</div>
);
}
}
export default GeoSearch;
这是我在名为azure.js的文件中的axios.create方法,该文件位于名为API的组件文件夹的同级文件夹中
import axios from 'axios';
export default axios.create({
baseURL: 'maskedurl',
params: {
"search": "",
"select": "name",
"count": "true"
},
headers: {
"Access-Control-Allow-Origin": "*"
}
});
这不管用。
然而,当我将onNavLoad函数中的axios切换到类似这样的fetch时,它可以完美地工作。
onNavLoad = async (lon, lat) => {
var myHeaders = new Headers();
myHeaders.append("api-key", "apikeymasked");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({"search":"","filter":"geo.distance(Location, geography'POINT(-6.184120 53.605190)') le 50","select":"name","count":"true"});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
const response = fetch("maskedurl", requestOptions)
.then(response => response.json())
.then(result => console.log(result.value))
.catch(error => console.log('error', error));
console.log(response);
}
有什么想法吗?
通常是服务器站点问题,但您可以使用PROXYURL从客户端覆盖此问题
const proxyURL = "https://cors-anywhere.herokuapp.com/";
const requestURL = YOUR URL;
const response = fetch(proxyURL + requestURL, requestOptions)
问题内容: 这是我第一次使用axios,遇到错误。 使用正确的url和参数,当我检查网络请求时,确实可以从服务器中获得正确的答案,但是当我打开控制台时,我看到它没有调用回调,而是捕获了错误。 错误:网络错误堆栈跟踪:createError @ http:// localhost:3000 / static / js / bundle.js:2188:15 handleError @ http://
我已经为jwt身份验证设置了一个节点/Express服务器,可以与我的Create React应用程序一起使用。我用的是CORS npm包和简单中间件< code > app . use(CORS());来解决预期的CORS相关问题及其正常工作。 现在我想将 Elasticsearch 和 ReactiveSearch 添加到我的 React 应用程序中,并试图弄清楚如何克服本地 ES 实例的 C
我正在使用与axios的反应来获取一些信息。我正在向授权用户发送JWT令牌,并在控制台浏览器中获得响应 “访问位于的XMLHttpRequest”https://beer-tonight.herokuapp.com/beer/getBeerStatus“起源”http://localhost:3000'已被CORS策略阻止:飞行前响应中的访问控制允许标头不允许请求标头字段授权。“ 这是我的代码:
根据本教程,我正在将Fabric crashlytics集成到android react本机应用程序中。但是在使用安装Fabric软件包后,我尝试使用为应用程序添加午餐,但出现以下错误: 配置项目': react-nily-结构'时出现问题。 无法解析配置的所有文件: react-nate-结构: classpath。 找不到lint gradle api。jar(com.android.tool
我试着用拉威尔·科尔斯(https://github.com/barryvdh/laravel-cors)使用Laravel 5.2更新数据,但我总是得到相同的错误: 无法加载XMLHttpRequesthttp://dev.pesanlab.com/api/v1/order/cart/add. 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://
**>错误:请求失败,状态代码为404, 在createError(createError.js:16)在settle.js:17)在xmlHttpRequest.HandleLoad(xhr.js:62)**