0

そのため、ほとんどの getJSON の質問を検索しましたが、まだ問題の解決策を見つけることができません。私の主な問題は次のとおりです。.aspx ページに対して $.getJSON 呼び出しを行う .js ファイルがあります。.aspx ページは json オブジェクトを返します。$.getJSON を demo.js でテストしましたが、問題なく動作します。json フィールドを参照できます。これは、.aspx ページには当てはまりません。これが私のコードです:

$getJSON 呼び出しを行う .js

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

json obj を返す .aspx

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 を配置し、ローカル マシンから実行して値を確認しました。jsonlint.com で正しく検証された json 形式の ws プロパティ設定を返します。

また、 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 を返すだけで問題ありませんでした。firebug によると、同じ aspx ページは、自動生成された追加の html も返していました。このhtmlを削除すると、firebugにjsonデータが表示されました。返信ありがとうございます。

于 2012-05-11T18:48:25.977 に答える