返回有效的JSON响应时出现AJAX parseerror

时间:2018-06-20 14:23:03

标签: jquery ajax asp.net-core

我的网页使用JQuery AJAX调用使用以下客户端代码从服务器(ASP.NET Core 2.0)中检索字符串值:

$.ajax({
        method: "POST",
        url: "/api/calculate",
        contentType: 'application/json; charset=UTF-8',
        Accept: "application/json; charset=UTF-8",
        data: JSON.stringify(request),
        dataType: "application/json",
        success: function (data) {
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }

Calculate方法返回一个简单的字符串:

    // POST: api/Calculate
    [HttpPost]
    public JsonResult Post([FromBody]object jsonValue)
    {
        var publicId = "1234ABCDB";
        var returnValue = Json(publicId);
        return returnValue;
    }

错误功能接收到的响应(在Chrome中),其中数据为:

  

{readyState:4,getResponseHeader:ƒ,getAllResponseHeaders:ƒ,setRequestHeader:ƒ,overrideMimeType:ƒ,…}   中止   :   ƒ(e)   总是   :   ƒ()   抓住   :   ƒ(e)   完成   :   ƒ()   失败   :   ƒ()   getAllResponseHeaders   :   ƒ()   getResponseHeader   :   ƒ(e)   overrideMimeType   :   ƒ(e)   管   :   ƒ()   进展   :   ƒ()   诺言   :   ƒ(e)   readyState   :   4   responseText   :   “” 1234ABCDB“”   setRequestHeader   :   ƒ(e,t)   州   :   ƒ()   状态   :   200   statusCode   :   ƒ(e)   statusText   :   “ parsererror”   然后   :   ƒ(t,r,i)   原始   :   对象

我已经使用PostMan验证了响应文本是有效的JSON对象。我尝试返回其他具有相同(parseerror)结果的JsonResult。

更新: 采纳@ADyson的建议,我在Chrome调试器中检出了“网络”标签。我注意到响应包含来自Kestrel的415错误。搜索“茶est 415”将我带到this StackOverflow question。建议的答案之一是删除服务器的“发布”消息中的[fromBody]标记。那解决了问题!

0 个答案:

没有答案