jQuery ajax WCF кросс-домен - PullRequest
0 голосов
/ 17 ноября 2011

Итак, у меня есть базовый сервис WCF, который должен использовать прямой jQuery / HTML, а не asp.net.

Я могу сделать вызовы GET для своего test.svc / test через браузер и получить ожидаемый результат JSON. { "d": [ "test1", "test2", "test3"]}

Теперь я пытаюсь использовать его через jQuery 1.4.x

$.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        url: methodUrl,
        data: {},
        beforeSend: function (XMLHttpRequest) {
            XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: successCallback,
        error: failedCallback
    });

Я получаю информацию об ошибке и выкидываю ее на консоль, это моя ошибка. LOG: {"readyState": 4, "status": 0, "statusText": "error"} LOG: «ошибка» LOG: {"message": "Доступ запрещен. \ R \ n", "description": "Доступ запрещен. \ R \ n", "number": - 2147024891}

Я читал, что мне нужно использовать JSON-P и / или crossDomainScriptAccessEnabled или еще 30 вещей.

До сих пор я не видел последовательного решения этой проблемы.

Любая помощь будет оценена.

Спасибо! Джон

1 Ответ

0 голосов
/ 21 ноября 2011

Таким образом, в нашей ситуации это кажется взломом.

Мы используем MS Dynamics CRM 2011, которая позволяет только простые HTML-страницы с JS и поддерживает только IE.

Мыв конечном итоге запустил другую службу WCF, которая находится в том же блоке, что и CRM (нарушая требования), и это просто прокси, который, в свою очередь, вызывает нашу реальную службу WCF, которая находится в другом блоке.

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

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