我是ASP.NET Core和React js的新手。 我无法从ASP.NET控制器端点获取React中的响应。后端的所有代码都从开始到返回响应行执行,并在返回行获取数据,但是在react js的响应中,我看不到数据。
我尝试过:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.InputFormatters.Add(new BypassFormDataInputFormatter());
options.RespectBrowserAcceptHeader = true;
options.InputFormatters.Add(new BypassFormDataInputFormatter());
options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
}).AddXmlSerializerFormatters().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
这是我的前端:
getRecordsByPaging = (pagingData) => {
debugger
var jsonData = JSON.stringify(pagingData);
return fetch('/get-products', {
method: 'POST',
body: jsonData,
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
}).then(res => {
return res;
}).catch(err => err);
}
这是我的后端:
[HttpPost]
[Route("get-products")]
public async Task<IActionResult> GetCustomers([FromBody] req)
{
try
{
if (!ModelState.IsValid)
{
return null;
}
var response = await _productSvc.GetProducts(req);
if (response == null)
{
return null;
}
return Ok(response);
}
catch (Exception e)
{
return null;
}
}
我不知道怎么了。
我正在反应js方面:
body: (...)
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: ""
type: "basic"
url: "https://localhost:44384/get-products"
__proto__: Response
答案 0 :(得分:0)
您需要阅读ajax请求的实际响应:
getRecordsByPaging = (pagingData) => {
var jsonData = JSON.stringify(pagingData);
return fetch('/get-products', {
method: 'POST',
body: jsonData,
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
})
.then(r => r.json())
.then(res => {
return res;
}).catch(err => err);
}
如您所见,添加的行是.then(r => r.json())
,它将实际上从您的请求中获取JSON响应。
您可以在https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch上了解有关fetch
api的更多信息
基本提取:
基本提取请求的设置非常简单。看看 以下代码:
fetch('http://example.com/movies.json')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
console.log(JSON.stringify(myJson));
});
在这里,我们正在通过网络获取JSON文件并将其打印到 控制台。 fetch()的最简单用法是使用一个参数-路径 到您要获取的资源—并返回包含 响应(响应对象)。
这当然只是HTTP响应,而不是实际的JSON。至 从响应中提取JSON正文内容,我们使用json() 方法(在Body mixin上定义,由 请求和响应对象。)