Невозможно вызвать веб-метод с JQuery JSON - PullRequest
0 голосов
/ 09 сентября 2010

Я использую протокол jsonp для вызова веб-методов.

Я использую этот код для веб-службы:

public class Service1 : System.Web.Services.WebService
{
    [WebMethod]
    [ScriptMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
}

И это в Jquery с jason на стороне клиента:

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: 'http://localhost:50837/Service1.asmx/HelloWorld',
            data: {},
            dataType: "json",

            success: function(Msg) {
                alert('success:' + Msg.d.FirstName);

            },
            error: function(xhr, textStatus, errorThrown) {
                alert("error");
            }

        });

    }

Этот Jquery всегда выдает мне сообщение об ошибке, но я не знаю причину.Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 10 сентября 2010

Вы должны разместить веб-сервис как часть на сайте. Если вы этого не сделаете, ваш код не будет работать из-за Одинаковая проблема политики происхождения (см.).

Вы можете разместить на одном сайте множество приложений, разработанных с использованием различных методов, таких как ASP.NET MVC, ASMX Web Service и WCF Service, и все они могут очень хорошо работать вместе. Это единственный способ быть в состоянии без более сложного JSONP. В вашей ситуации JSONP негабаритный.

Ваш вопрос почти такой же, как и Вызов простого веб-сервиса (.asmx файл) из AJAX и JQuery с использованием JSON - ошибка синтаксического анализа . Если вам нужен рабочий пример Hello Wold, вы найдете ссылку на полный пример кода.

Подробнее о различных способах решения одной и той же политики происхождения можно прочитать в разделе Вопрос о выполнении запросов XHR . Прочитав это, вы поймете, что проблема политики единого происхождения действительно сложна. Вы можете решить эту проблему, но в вашем случае вам не нужно просто размещать все на одном веб-сайте и использовать относительные пути.

...