Невозможно заставить работать URL-адрес веб-службы при использовании функции загрузки в jQuery - PullRequest
1 голос
/ 06 февраля 2012

Я просто не могу заставить это работать!Всякий раз, когда я нажимаю кнопку, ничего не происходит.Замените метод .load на .text ('hello world'), и он работает, так что, похоже, моя проблема в URL метода.Искал ответ везде, но думаю, что я должен упускать из виду нечто действительно очевидное, поскольку нигде не видел того же.Пожалуйста, помогите ему свести меня с ума !!!

На стороне клиента:

    <script src="Scripts/jQuery-1.7.1.js" type="text/javascript"></script>
    <script type="text/javascript">
    // Cannot get this to work
        $(function () {
            $('#buttonSays').click(function () {
                $('div').load('AjaxServices.asmx/HelloWorld');
            });
        });
    </script>
</head>
<body>
    <h1>Hello World from Web Service</h1>
    <button type="button" id="buttonSays">Get Info</button>
    <p>The site says...</p>
    <div id="divSays1"></div>
    <div id="divSays2"></div>
    <div id="divSays3"></div>
</body>

На стороне сервера:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AjaxServices : System.Web.Services.WebService
{

private static int count = 0;

[WebMethod]
public string HelloWorld()
{
    count++;
    return "Hello World #" + count.ToString();
}

1 Ответ

2 голосов
/ 06 февраля 2012

Хотя это может не вызывать вашу проблему, распространенная проблема, которая не позволяет веб-службам .Net работать с jQuery, заключается в том, что запросы GET и POST по умолчанию не разрешены.Убедитесь, что вы включили соответствующий метод (методы) в своем файле web.config, используя следующий код:

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

Я полагаю, вы также можете указать, какие методы разрешены на уровне WebMethod:

[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
    count++;
    return "Hello World #" + count.ToString();
}
...