【发布时间】:2015-06-17 05:28:37
【问题描述】:
尝试在 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。您面临的问题是什么?
-
基于我使用 dataType:'json' 为 jQuery $.ajax() 找到的所有文档,我应该从返回的 json 字符串中获取一个 javascript 对象,所以我不必做类似的事情JSON.parse() 使其成为一个对象。所以 console.log(response.status) 应该打印“成功”。也许我误解了文档?
标签: javascript jquery ajax json asp.net-web-api2