ASP.NET 核心托管的webapi在GET请求上显示"SyntaxError: JSON.parse"



免责声明:我刚刚开始学习 C#,正在尝试构建一个向 SQL 数据库发出请求的 ASP.NET 核心 Web api。两者都已经托管在Azure上...

。我可以通过邮递员成功发出请求,但在调用 Azure 上托管的 API 时无法显示可读数据。

在控制器中

[Route("api/[controller]")]
[ApiController]
public class TenantsController : ControllerBase
{
private readonly TenantContext _context;
public TenantsController(TenantContext context) => _context = context;
//GET: /api/tenants
[HttpGet]
public ActionResult<IEnumerable<Tenant>> GetTenants()
{
return _context.TenantDetails;
}

在模型中

namespace TenantsApi.Models
{
public class Tenant
{
public int Id { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public double Rent { get; set; }
public string Address { get; set; }
}
}

数据库上下文

using Microsoft.EntityFrameworkCore;
namespace TenantsApi.Models
{
public class TenantContext : DbContext
{
public TenantContext(DbContextOptions<TenantContext> options) : base(options)
{
}
public DbSet<Tenant> TenantDetails { get; set; }
}
}

预期结果应如下所示:

[{"id": 1,
"Title": "Mr",
"FirstName":"John",
"Surname":"Smith",
"Email":"John@aol.com",
"Rent":500.00,
"Address":"1 Random Place, London, L1 1AA"}]

实际结果 :

[

错误消息:"语法错误:JSON.parse:JSON 数据第 1 行第 2 列处数据意外结束"只能在 Firefox 上查看

Firefox 中的标头告诉我:

内容编码 gzip 内容类型应用程序/json;字符集=UTF-8 日期 星期四, 22 八月 2019 10:23:25 GMT 服务器 Microsoft-IIS/10.0 传输编码分块 改变接受编码 X 供电 ASP.NET

https://learn.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-dotnetcore-sqldb

如果你不熟悉 c# 和 Azure,这将是一个很好的快速入门。

你也可以在下面使用github存储库:

https://github.com/Azure-Samples/dotnet-core-api

以下是一些需要注意的要点:

  • 请确保为托管 API 启用 CORS。 您可以参考以下文档以供参考:

https://learn.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-rest-api

  • 默认情况下,SQL Azure 数据库只允许来自 Azure 应用程序或资源的连接。如果您尝试从本地计算机访问它,请确保为其添加防火墙规则:

请按照以下文档进行操作:

https://learn.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-dotnet-sqldatabase

请让我知道它是怎么回事。希望它有帮助。

相关内容

最新更新