我有一个图像裁剪器,可以为每个裁剪创建一个 blob 文件。
当用户完成裁剪后,他点击一个成功按钮,我得到一个如下所示的 URL:blob: https://localhost:5001/4434606b-29c4-483d-a1fc-1cefe50a3e3a “。因为我需要一个文件对象(所以我可以将其发布到我的服务器)我使用以下代码将此 blob 转换为实际文件对象:
const file = await fetch(blobUrl).then(r => r.blob()).then(blobFile => new File([blobFile], fileName, { type: blobFile.type }));
Run Code Online (Sandbox Code Playgroud)
此代码有效,但不幸的是,我需要提供 IE11 支持,并且由于不支持 fetch(并且 polyfills 似乎不适用于此 fetch 调用)我想将此语句迁移到 axios(我已经在我的应用)。
这是我尝试过的:
axios.get(blobUrl).then(r => r.blob()).then(blobFile => new File([blobFile], fileName, { type: blobFile.type }));
Run Code Online (Sandbox Code Playgroud)
当我查看第一次调用 ( then(r => r.blob())的响应时,我得到如下信息:

我认为这是因为图像无法在控制台中显示,但是当我尝试调用“r.blob()”时,我得到了这个:
r.blob 不是函数
如何更改我的 axios 调用,使其像上面的 fetch 调用一样工作?
旁注:我不知道我的回复将使用哪种文件类型(除了它是图像),所以它可能是 png、jpg、gif 等。
我之前偶然发现了很多次,我一直想知道是否可以用更简单,更少冗余的方式来写这个.
我们假设我们有这个HTML:
<div class="wrapperClass">
<div class="someClass">
<h1>This is a title</h1>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果我想要设置<h1>元素的样式,我会这样做:
.wrapperClass .someClass h1 {
color: red;
}
Run Code Online (Sandbox Code Playgroud)
让我们假设用户也有可能使用a <h2>, <h3>, <h4>, <h5> or even a <h6>,我们也需要覆盖这些情况.
我的CSS语句现在看起来像这样:
.wrapperClass .someClass h1, .wrapperclass .someClass h2, .wrapperClass .someClass h3 ...
Run Code Online (Sandbox Code Playgroud)
这个陈述真的很长; 这就是为什么我想知道这些案件是否有简短形式.
我有以下控制器,希望将其用作ajax帖子的Web API控制器,以从用户表中检索数据。
namespace MyProjectName.Controllers.API
{
[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{
private readonly myContext _context;
public UsersController(myContext context)
{
_context = context;
}
[HttpGet]
public List<string> GetInstitutionNamesById(int id)
{
// returns desired list
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望此函数的路由如下所示:/ api / users / getinstitutionnamesbyid,但显然它似乎只是/ api / users,我确实感到困惑(如果我添加其他HttpGet函数会怎样?)。
谁能解释我在做什么错?我不是按预期方式使用Web Api控制器吗?我的选路错了吗?
提前致谢。
c# asp.net-web-api-routing asp.net-core-mvc asp.net-core asp.net-core-2.2