$ .getJSON不会读取我的.aspx返回值

时间:2012-05-09 16:52:04

标签: json javascriptserializer getjson

所以我搜索了大多数getJSON问题,仍然无法找到问题的解决方案。我的主要问题是:我有一个.js文件,它对.aspx页面进行$ .getJSON调用。 .aspx页面返回一个json对象。我用demo.js测试了$ .getJSON,它运行得很好;我能够引用json字段。 .aspx页面不是这种情况。这是我的代码:

.js进行$ getJSON调用

$.getJSON('updateSlides.aspx', function (json) {
    alert("JSON Data: " + json.url);
});

.aspx返回json obj

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim jsonString As String
    If Not Page.IsPostBack Then
        Dim ws As New wallboardSettings
        ' pull data values from db here, replace hardcoded values below
        ws.duration = 5
        ws.imagePath = "Images\slide1.jpg"
        ws.url = "slide1.html"
        Dim js As JavaScriptSerializer = New JavaScriptSerializer()
        jsonString = js.Serialize(ws)
        Response.Write(jsonString)
    End If
End Sub

我在VB中放了一个msgbox,然后从我的本地计算机上运行它以查看我的值。它以json形式返回ws属性设置,该设置在jsonlint.com上正确验证。

我也尝试过使用async的$ .ajax调用:false但是它不起作用。当我使用demo.js时,我看到了firebug中的json字段; updateSlides.aspx不是这种情况。

提前致谢, 布赖恩

2 个答案:

答案 0 :(得分:0)

从回复中将内容类型标题设置为application / json。

答案 1 :(得分:0)

事实证明,json不是问题所在。 aspx页面返回json就好了。根据firebug,相同的aspx页面也返回了自动生成的附加html。我删除了这个html,firebug显示了json数据。谢谢你的回应!