2

IE8、jQuery 1.6.1.min.js を使用。

REST サービスからの JSON は有効なようです (少なくとも、jsonlint.com で検証した場合)。

{
"requestId":"1624517264",
"acknowledge":1,
"errorCode":0,
"totalResultCount":2,
"results":[
{"EmployeeCode":"007","EmployeeUno":7,"EmployeeName":"Bond, James","Location":"Unknown","Login":"JBOND"},
{"EmployeeCode":"008","EmployeeUno":8,"EmployeeName":"Bar, Foo","Location":"NYC","Login":"FBAR"}
]}

jQuery:

  $.getJSON(urlToSvc + "&callback=?", function (data) {
                   // can't get to here 
                });

javascript エラーが発生します ';' が必要です。私は何を間違っていますか?

4

2 に答える 2

4

それがまさに urlToSvc からの応答である場合、JSONP 要求を行っているように見えますが、urlToSvc はプレーンな JSON を返しています。

Firebug などのツールを使用してリクエストを検査すると、 のようなもの$.getJSON()に置き換えられていることがわかります。つまり、jQuery は、JSON が への関数呼び出しのパラメーターとして返されることを期待しています。これが、バックグラウンドでコールバック関数を接続する方法です。callback=?callback=jQuery152012865984649397433_1306892572812jQuery152012865984649397433_1306892572812()

その場合、応答は次のようになります (ただし、正確な関数名は、callbackクエリ文字列パラメーターで指定された要求ごとに変更されます)。

jQuery152012865984649397433_1306892572812('{"requestId":"1624517264","acknowledge":1,"errorCode":0,"totalResultCount":2,"results":[{"EmployeeCode":"007","EmployeeUno":7,"EmployeeName":"Bond, James","Location":"Unknown","Login":"JBOND"},{"EmployeeCode":"008","EmployeeUno":8,"EmployeeName":"Bar, Foo","Location":"NYC","Login":"FBAR"}]}')
于 2011-06-01T01:49:46.850 に答える
1

JSON は有効に見えます。トレースバックが不正確であり、実際にはコールバック関数の構文エラーである可能性を考慮してください。また、このデータが実際に受信されているデータであることを確認してください。たとえば、URL がわずかにずれている場合は、エラー ページを解析しようとしている可能性があります。Chrome や Firebug の Network タブは、まさにこれに最適です。

于 2011-06-01T01:18:40.953 に答える