我正在尝试获取请求。但是它总是失败,并显示有关CORS策略的错误。
现在,我对CORS政策了解甚少,我尝试阅读有关它的文档,但看起来似乎很模糊,从我的理解来看,这是必须在服务器端解决的问题。
我的问题是,我在浏览器中加载了此url,并获得了所需的数据,没有麻烦。我还尝试了Postman,它也为我提供了没有问题的数据。
仅当我尝试通过访存访问数据时,才会发生我的错误。我认为这是因为Postman和浏览器没有给我任何错误,也许这是我做错了,而不是关于我不了解的CORS。
这是网址
http://192.168.1.43:30013/geoserver/mundo/wfs?request=GetFeature&service=WFS&version=1.0.0&typeName=mundo:mv_mexico2_suav&outputFormat=application/json
我将其粘贴到浏览器中,然后得到数据。我在邮递员中创建了一个GET请求,我得到了数据。
const url = 'http://192.168.1.43:30013/geoserver/mundo/wfs?request=GetFeature&service=WFS&version=1.0.0&typeName=mundo:mv_mexico2_suav&outputFormat=application/json';
const response = await fetch(url);
if (response.ok) {
const geojson = await response.json();
if (isNil(geojson)) {
throw new Error('Empty Response');
}
return geojson;
}
console.error(response);
throw new Error('Response not ok. Server Error');
这是我在浏览器中看到的错误:
Access to fetch at 'http://192.168.1.43:30013/geoserver/mundo/wfs?request=GetFeature&service=WFS&version=1.0.0&typeName=mundo:mv_mexico2_suav&outputFormat=application/json'
from origin 'http://localhost:3004' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.
我尝试添加mode: 'no-cors'
,错误如下:
Error: Network response was not ok. Server Error
解决方法是这样:
body: (...)
bodyUsed: false
headers: Headers {}
ok: false
redirected: false
status: 0
statusText: ""
type: "opaque"
url: ""
__proto__: Response