2014-01-09 4 views
1

У меня есть служба JSON работает на внутреннем сервере, который возвращает следующую запись:Почему этот вызов getJSON не задан?

{ 
    "getLTCWithIDsResult": { 
     "AIMSubmissionID": "", 
     "BrokerName": "", 
     "DateApplied": "/Date(1389302726241-0600)/", 
     "Dirty": false, 
     "EffectiveDate": "/Date(1389302726241-0600)/", 
     "ExpiringPremium": 0, 
     "GrandTotal": 0, 
     "Insured": { 
      "Address1": "", 
      "Address2": "", 
      "City": "", 
      "County": "", 
      "InsuredName": "Nice Try Bro", 
      "MailAddress1": "", 
      "MailAddress2": "", 
      "MailCity": "", 
      "MailCounty": "", 
      "MailState": "", 
      "MailZip": "", 
      "Phone1": "", 
      "Phone2": "", 
      "State": "", 
      "Zip": "" 
     }, 
     "IsRenewal": false, 
     "Locations": [ ], 
     "PercentChange": 0, 
     "PolicyID": "", 
     "QuoteID": 0, 
     "QuoteVersion": 0, 
     "RetroDate": null, 
     "Status": null 
    } 
} 

Я пытаюсь получить часть этой записи на HTML-страницу, используя следующий сценарий. К сожалению, переменная данных в строке success: function (data) постоянно возвращается «undefined». Может ли кто-нибудь помочь?

$(document).ready(function() 
{ 
    var appViewModel 
    // AppViewModel 
    function AppViewModel() 
    { 
     this.InsuredName = ko.observable(); 
    } 
    var appViewModel = new AppViewModel(); 
    ko.applyBindings(appViewModel); 

    $.getJSON("http://waltweb01:85/LTCEPLWS/LTCJSON.svc/getLTCWithIDs/'4'", 
    { 
     success: function (data) 
     { 
      incomingData = data; 
      appViewModel.InsuredName(incomingData.InsuredName); 
     } 
    }); 
}); 
+2

Ваш код JavaScript также работает на 'http: // waltweb01: 85'? Если нет, то вам нужно настроить либо JSONP, либо CORS. –

+1

'incomingData.InsuredName' - это неправильный способ доступа к собственности, которую вы ищете. –

+0

Нет, JS работает на моей dev-блоке. И будет работать (надеюсь) в другом домене. Я полагаю, что я подниму Google JSONP/CORS. –

ответ

0

Это не, как вы используете $.getJSON. Вы используете только success: function() при использовании $.ajax. При использовании сокращенных методов ($.getJSON, $.post и $.get) вы просто передаете функцию, не объект.

$.getJSON("http://waltweb01:85/LTCEPLWS/LTCJSON.svc/getLTCWithIDs/'4'", function(data){ 
    incomingData = data; 
    appViewModel.InsuredName(incomingData.InsuredName); 
}); 
+0

Если вы хотите получить техническую информацию, вы также не используете 'getJSON'. С внедрением интерфейса обещания предлагается перенести ваш код на использование 'done',' fail' и 'always'. –

+0

@JustinNiessner: Я думаю, но это все еще хорошо. –

+0

Собственно, это не так. Обратный вызов 'success' устарел (на что полагается ваше предложение) и может быть удален в любой момент в будущей версии. –

Смежные вопросы