javascript - vb.net web api $.ajax 响应不是 json 对象

标签 javascript jquery ajax json asp.net-web-api2

尝试在 vb.NET 中进行简单的 Web API 调用,该调用返回 json,以便 jQuery ajax 响应已经是一个 javascript 对象。只是似乎无法让它工作。

' GET api/<controller>
Public Function GetValues()
    Dim json As New Dictionary(Of String, String)
    json.Add("status", "success")
    json.Add("msg", "good job")

    Dim serializer = New JavaScriptSerializer()
    Return serializer.Serialize(json)

    'Return JsonConvert.SerializeObject(json)
End Function

Ajax 调用:

$.ajax({
    url: "api/products",
    type: 'GET',
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({key:'key'}),
    dataType: 'json',
    success: function (response) {
        console.log(response);  // prints {"status":"success","msg":"good job"}
        console.log(response.status);  // prints undefined
    }
});

Chrome 显示:
请求头:Content-Type:application/json;字符集=utf-8
响应头:Content-Type:application/json;字符集=utf-8
网络/响应选项卡显示:“{\"status\":\"success\",\"msg\":\"good job\"}"

它显然没有被自动转换成 JavaScript 对象,但我不明白为什么。我是否从 JavaScriptSerialize.Serialize() 或 NewtonSofts JsonConvert.SerializeObject 返回响应并不重要。

我一定错过了一些基本的东西。谁能指出我正确的方向?

最佳答案

所以我想出了我的笨办法。该函数将我序列化为 json 的内容作为字符串返回,直到我另有说明为止。我放弃了 VB,转而使用 C#,但它也失败了。最后我将 C# 版本更改为:
public string UploadFile()

public Dictionary<string, string> UploadFile()

在VB中它会类似
Public Function GetValues() As String

Public Function GetValues() As Dictionary(Of String, String)

然后我得到了一个 javascript 对象,而不必使用 JSON.parse() 之类的东西。 :-)

关于javascript - vb.net web api $.ajax 响应不是 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30882943/

相关文章:

javascript - 如何在 jquery 中使用 Promise 循环?

ajax - 流行浏览器中允许多少个并发 AJAX (XmlHttpRequest) 请求?

javascript - 视觉 : Display Loader when request is in progress

Javascript - 计算 es6 中具有许多字段的对象数组中的重复项

javascript - ionic 2 : Local notification icon

javascript - tinyMCE从版本3升级到版本4后不再可以拖放图像

javascript - google maps api v3 - 从外部点击打开信息窗口

javascript - 如何检查一个单词在 Javascript 中的数组中出现的次数

jquery - 如何使轮播在此 Shopify 主题中自动滚动?

php - AJAX/PHP异步计算