0

因此,我搜索了大多数 getJSON 问题,但仍然无法找到解决问题的方法。我的主要问题是:我有一个对 .aspx 页面进行 $.getJSON 调用的 .js 文件。.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: false 的 $.ajax 调用,但它不起作用。当我使用有效的 demo.js 时,我在 firebug 中看到了 json 字段;updateSlides.aspx 不是这种情况。

在此先感谢,布赖恩

4

2 回答 2

0

从您的响应中将内容类型标头设置为 application/json。

于 2012-05-09T17:09:29.043 回答
0

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

于 2012-05-11T18:48:25.977 回答