Я использую функцию jQuery.ajax, чтобы сделать запрос GET к следующему веб-сервису asp.net:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string GetAgentsGroupNameById(int id)
Я установил для contentType значение application \ json, а значение dataType - jsonp, но я все равно получаю ответ в формате xml:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="tempuri.org/">Sports</string>;
Вот подробности запроса и ответа, как показано в инструментах разработчика Chrome:
Я что-то не так делаю с запросом? или, может быть, с самим веб-сервисом?
Ответ 1 · Ashwin Singh
Веб-сервис может возвращать как JSON, так и XML, вам нужно будет указать, какой формат вы хотите использовать в своем вызове ajax, например, contentType: 'application/json; charset=utf-8'. Сериализация автоматическая. Не волнуйтесь, ваш код будет работать нормально. Возвращенный контент имеет форму
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://formshare.com/">
[{"VAL1":"SSDSDSD"},{"VAL2":"PDWDWWD"}]//Example JSON
</string>
Ответ 2 · benams
Похоже, мне нужно добавить тег скрипта, который обернет ответ (в веб-сервисе). Я знаю, что это можно сделать автоматически с помощью WCF, но я не уверен, что веб-службы asp.net могут выполнить эту работу за меня, поэтому я добавлю HttpModule, который сделает это, и дам вам знать.