Reactjs 在react js中调用axios get请求时获取网络错误
我在Mac os中使用React.js,当我尝试调用axios.get时,我遇到网络错误。我阅读了许多其他案例,比如我的案例,他们使用react native,答案是添加设置,允许他们在mac中使用http而不是https,但该设置不能在react js中使用 如有任何建议,将不胜感激 错误:网络错误 在createError(createError.js:17) 位于XMLHttpRequest.handleError(xhr.js:87) 我的代码如下:Reactjs 在react js中调用axios get请求时获取网络错误,reactjs,axios,Reactjs,Axios,我在Mac os中使用React.js,当我尝试调用axios.get时,我遇到网络错误。我阅读了许多其他案例,比如我的案例,他们使用react native,答案是添加设置,允许他们在mac中使用http而不是https,但该设置不能在react js中使用 如有任何建议,将不胜感激 错误:网络错误 在createError(createError.js:17) 位于XMLHttpRequest.handleError(xhr.js:87) 我的代码如下: try { const Resp
try {
const Response = await axios.get(http://xxxxx/WebServiceTest/service.svc?wsdl/GetItems, {
params: {
Number: "100",
Id: "101",
userName: "11",
credential: "Test"
}
});
console.log("http response = " + Response.data);
} catch (ex) {
console.log("error.status:", ex);
}
将wait更改为promise,即使您放置wait,axios函数也将异步工作
async functionName() {
let response = () => {
return new Promise(function(resolve, reject) {
fetch('http://xxxxx/WebServiceTest/service.svc?wsdl/GetItems', {
params: {
Number: "100",
Id: "101",
userName: "11",
credential: "Test"
}
}).then(response => {
resolve(response);
});
});
};
let responseData = await response();
console.log(responseData.data);
}
您可以在reactjs中使用axios方法,在服务器端代码中使用一些命令来消除cors策略错误 我已经在我的服务器端代码(php)中使用了这些命令
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: *');
header('Access-Control-Max-Age: 1728000');
header("Content-Length: 0");
header("Content-Type: text/plain");
记住:在会话开始时立即添加这些行我在spring boot中使用@CrossOrigin注释找到了解决方案
@RestController
@CrossOrigin
@RequestMapping("/cus")
public class CusController{
@Autowired
CustomerService cus_service=null;
@PostMapping("/save")
public Customer saveCustomer(@RequestBody Customer customer)
{
if(customer!=null)
return cus_service.saveCustomer(customer);
else
throw new DataNotFoundException("Data Not Available For Customer");
}
}
您可以简单地在应用程序中进行以下更改
axios.create({baseURL:" "});
做成
const instance = axios.create(
{
baseURL: "",
withCredentials: false,
headers: {
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods':'GET,PUT,POST,DELETE,PATCH,OPTIONS',
}
})
在您的情况下,尝试添加上面的任何地方,您必须创建AXIOS实例。如果使用默认的AXIOS,则考虑按照上面的代码创建自定义实例。
感谢您的回复,现在我收到错误:“未处理的拒绝(TypeError):无法读取未定义的属性'get',我搜索了,但找不到解决方案,请通知谢谢您的回答,很遗憾,我与第三方服务器的连接有问题,正在等待解决,我会尽快测试,让你知道这不是简单的获取而不是Axios吗?本质上,你似乎在说,对我来说,Axios是无用的,老实说,我不认为这是一个可信的观点。既然Axios受到普遍尊重,为什么要允许Origin两次呢?