我尝试asp.net从react native调用我的www.example.com API,但它总是返回一个网络错误。我已经配置了我的api cors策略来接受所有的源,所有的方法和所有的头。我正在我的ios手机上运行react native应用程序使用expo,我配置了https的url,因为我已经读取了ios默认情况下阻止http请求。我尝试使用localhost:{port}作为我的url和我的服务器的ip地址,但没有任何工作。我已经被困在这个问题上3天了,希望得到任何帮助。
我C#代码:
builder.Services.AddCors(opt =>
{
opt.AddPolicy("CorsPolicy", policy =>
{
policy.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin();
});
});
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
//app.UseHttpsRedirection();
app.UseCors("CorsPolicy");
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
我的get请求是一个非常简单的get请求,用于测试目的
[AllowAnonymous]
[HttpGet("Get")]
public async Task<ActionResult> Get()
{
return Ok("test");
}
我的react本地代码调用get方法:
let getEmployees = () => {
fetch("https://localhost:7287/get")
.then((res) => {
console.log(res.status);
console.log(res.headers);
return res.json();
})
.then(
(result) => {
console.log(result);
},
(error) => {
console.log(error);
}
);
};
在我的react本地代码中,我使用了localhost,但我也尝试使用我的服务器的ip地址,但仍然会出现网络请求失败的情况。
这是我从react native得到的错误
Network request failed
at node_modules\whatwg-fetch\dist\fetch.umd.js:541:17 in setTimeout$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:214:12 in _allocateCallback$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:112:14 in _callTimer
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:357:16 in callTimers
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:417:4 in __callFunction
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:114:6 in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:368:10 in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:113:4 in callFunctionReturnFlushedQueue
最后一点要注意的是,我所有的API端点在浏览器、postman和swagger上都能很好地工作,我甚至在一个简单的react.js项目上试过,它们都能工作,问题只发生在react原生项目上,任何帮助都将不胜感激。
1条答案
按热度按时间wfveoks01#
你能试试ngrok.io?吗它会生成一个url,你可以在你的应用程序中使用。