WebMethod: отключить XML - PullRequest
       21

WebMethod: отключить XML

1 голос
/ 22 февраля 2012

Я создал приложение веб-службы ASP.NET (.NET 3.5) с простым WebMethod:

[WebMethod]
    public string GetToken()
    {
       return "Hello";
    }

Ответ выглядит так:

    <?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://www.mywebsite.com/">Hello</string>

Это отлично работает. Однако, один из моих клиентов не может иметь дело с XML-оболочкой вокруг строки результата. Есть ли способ отключить XML и просто вернуть чистую строку «Hello» (без кавычек, конечно; -)).?

1 Ответ

0 голосов
/ 22 февраля 2012

См. Здесь: http://weblogs.asp.net/scottgu/archive/2007/04/04/json-hijacking-and-how-asp-net-ajax-1-0-mitigates-these-attacks.aspx

По сути, чтобы вернуть строку, вам необходимо вернуть результат JSON, который, в свою очередь, может быть достигнут либо путем выдачи POST из вашего PHP-клиента, либо путем добавления

[ScriptMethod(UseHttpGet=true)] 

для вашего веб-метода.

Кроме того, убедитесь, что вы выполнили шаги, описанные здесь: http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-web-services, чтобы в первую очередь создать службу с поддержкой AJAX.Например, вам нужно добавить атрибут

[System.Web.Script.Services.ScriptService]

в ваш класс, чтобы он мог вести себя как служба AJAX ...

...