Проблема с кросс-доменным вызовом Ajax с использованием Jquery WCF REST Starter Kit Preview 2 - PullRequest
3 голосов
/ 17 сентября 2010

Я создал и разместил свой API-интерфейс WCF REST с помощью предварительного просмотра WCF REST Starter Kit2. Который поддерживает динамический тип ответа и тип запроса (XML и JSON). Все работает нормально, если я использую службу в одном домене через Jquery, Microsoft.Http.

Мой код CS выглядит следующим образом:

private void GetData()
    {
        string url = string.Format("http://myhost/Services/UserService.svc/people/");
        HttpClient client = new HttpClient();
        HttpResponseMessage responseMessage = client.Get(url);
        responseMessage.EnsureStatusIsSuccessful();
        using (responseMessage)
        {
            string res = responseMessage.Content.ReadAsString();
            Response.Write(res);
        }
    }

теперь, когда я пытаюсь использовать свой сервис с помощью Jquery из другого домена, ответ поступает в IE8, но в Mozilla и Chrome я получаю нулевой ответ Мой код jquery выглядит следующим образом:

 function loadData() {
    var path = "http://myhost/Services/UserService.svc/people/";       
    $.ajax({
        type: "GET",
        url: path,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        success: function(response) {               
            if (response != null) {
                displayData(response);                   
            }
        }
    });
}

Я также попытался установить тип данных: "jsonp" и вызов метода .getJson ().

1 Ответ

0 голосов
/ 06 апреля 2011

Вы также можете использовать ProxyHandler в своем текущем домене. Из своего клиентского кода вызовите обработчик прокси (тот же домен), который затем может вызвать службу REST (междоменный).

Ознакомьтесь с этими статьями о создании HtppHandler (Proxy), если вам нужна начальная точка.

Как создать обработчик HTTP ASP.NET с помощью Visual C # .NET

Бойлер HttpHandler - Скотт Хансельман

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...