gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:04:36 24 4
gpt4 key购买 nike

尝试在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com