【问题标题】:Axios Error with Status Code 415 in Using Get Method使用 Get 方法时出现状态码 415 的 Axios 错误
【发布时间】:2018-07-30 10:09:55
【问题描述】:

早安,

我在使用 axios.get 时遇到了这个错误代码。错误代码是 415。我想要做的是,提供 const 对象以将其发送到我的控制器。我尝试调试控制器,但它没有在我的控制器(ASP.NET Core 控制器)中进行。

这是我的示例代码:

// Class that I want to supply
public class User{
    public int? Name {get;set;}
    public DateTime? Bday {get;set;}
}

// My Controller
public async Task<IActionResult> GetUsers([FromBody] User user){
    // Do something here
}

// My js file axios is already imported and working
async searchUser(){
    const user = {
        Name: name,
        Bday: bday
    }

    await axios.get(`/SomePage/GetUsers/`,user).then(response=>{
        // do something here
    }.catch(error=>{console.log(error);});
}

希望有人能帮我找到解决办法。

【问题讨论】:

    标签: javascript json asp.net-core-mvc axios asp.net-core-webapi


    【解决方案1】:

    HTTP 状态代码 415 表示不支持的媒体类型。即表示服务器拒绝接受请求,因为负载格式不支持。

    根据MDN Web Docs

    格式问题可能是由于请求指定的 Content-Type 或 Content-Encoding,或者是直接检查数据的结果。

    您能否将您的 API 操作 FromBody 更改为 FromQuery。从技术上讲,这应该可行。

    【讨论】:

    • 你有样本修复吗?
    • 你可以试试axios.get('endpoint', { headers: { 'Content-Type': 'application/json' } }) .
    • 哦哦,您正在向 GET 操作发送一个复杂对象。你能发布你的 API 端点的样子吗?是不是类似于Get([FromUri]User user)
    • 它在我的控制器方法中。
    • 对不起,我没有注意到控制器代码。您能否将您的 API 操作 FromBody 更改为 FromQuery。从技术上讲应该可以工作
    【解决方案2】:

    是的,贾利亚是对的。您还可以从 Microsoft 查看有关 ASP.NET Web API 中的参数绑定的文档,因为您正在处理 API 请求。 Parameter Binding in ASP.NET Web API

    【讨论】:

      【解决方案3】:

      调用axios时传递header

      axios.get("https://api.url.com", {headers: {'Content-Type': 'application/json'}

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-08
        • 2020-11-04
        • 2018-02-02
        • 1970-01-01
        • 2019-12-13
        • 1970-01-01
        • 1970-01-01
        • 2021-06-01
        相关资源
        最近更新 更多