2013-03-25 4 views
0

Я использую javascript для доступа к нижеуказанному веб-сервису WCF Ajax.Строка доступа в объекте JSON

[OperationContract] 
    public string Test() 
    { 
     return "test"; 
    } 

Я использую приведенный ниже javascript для выполнения метода и кнопки, подключенной к функции.

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
<Services> 
    <asp:ServiceReference Path="~/AjaxService.svc" /> 
</Services> 
</asp:ScriptManager> 

<script type="text/javascript"> 
function TestFunction() { 
    alert(JSON.stringify(AjaxService.Test())); 
} 
</script> 

Теперь, когда я запускаю код, предупреждающее сообщение не определено. Однако, когда я проверяю firebug, я вижу, что Webmethod действительно работал правильно. Я получаю http-ответ {"d": "test"}.

Как я могу получить доступ к строке, которую я вернул из веб-метода Ajax в javascript?

+0

Не могли бы вы попробовать console.log (AjaxService.Text()), чтобы узнать, что является результатом? – Shuping

ответ

0

Во-первых, попробуйте использовать JQuery для декодирования JSON для нескольких браузеров поддерживают, используя, например:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 

Затем вы можете декодировать строку JSON с помощью:

var response = $.parseJSON(AjaxService.Test()); 
alert(response['d']); // This should show 'test' 
+1

Он не упоминал jQuery нигде в своем вопросе или не использовал тег. И это не нужно для того, что вы делаете. –

+0

Итак, как вы знаете, что это не работает из-за JSON.stringify(), который не является кросс-браузером? Он хочет, чтобы это работало. – axelbrz

+1

Я честно не знаю точно, что не так с его кодом, он не дал нам достаточно информации. Если ему передается строка JSON, он должен запускать JSON.parse() вместо строки и не нуждается в jQuery. Независимо от того, я думаю, нам нужно немного больше информации или кто-то, кто знает больше о WCF, чем я. –

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