jQuery ASP.net веб-сервис потребления - PullRequest
2 голосов
/ 09 августа 2010

Я искал, как использовать веб-метод с помощью вызова $ .ajax, используя следующий код:

$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "WebService.asmx/HelloWorld",
            data: "{}",
            dataType: "json",
            success: function(msg) {
                alert(msg.d);
            }
        });

Однако, когда я попытался изменить тип с "POST" на "GET"звонок не прошел.Может кто-нибудь указать причину, по которой это происходит?

Ответы [ 3 ]

4 голосов
/ 09 августа 2010

По умолчанию GET запросы отключены для веб-служб ASP.Net AJAX, ScottGu имеет отличную запись в блоге по этому , в том числе о том, как обойти эту защиту, если вы к этому стремитесь.*

Вот пример исправления путем установки UseHttpGet на ScriptMethodAttribute:

[WebMethod, ScriptMethod(UseHttpGet=true)] 
public string HelloWorld() 
{
  return "Hello World";
}
1 голос
/ 09 августа 2010

Как писал Ник, вы можете использовать ScriptMethodAttribute или разрешить GET обработку запросов в web.config:

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>
0 голосов
/ 09 августа 2010

Вы пробовали проверить код на стороне сервера, чтобы увидеть, откуда он получает значения?он может не отвечать в зависимости от используемого метода.

также в сторону: если вы извлекаете данные из веб-службы, логически правильным методом обычно является GET.

...