вызов службы WCF от angularjs возвращает -1

0

Я использую следующий код для вызова службы WCF из angularjs. Эта функция будет вызываться при изменении текстового поля. Код HTML:

<div><input type="text" placeholder="Search for items" id="textFiled" class="input" ng-keydown="checkKeyDown($event)" ng-keyup="checkKeyUp($event)" ng-model="searchText" ng-change="search()" /></div>

код javascript

//Function To Call On ng-change
    $rootScope.search = function () {
        var searchTextSmallLetters = angular.lowercase($scope.searchText);
        if (searchTextSmallLetters.length > 2) {

            $http({
                method: "GET",
                withCredentials: true,
                url: "http://XX.XXX.XX.XX:XX/Service.svc/Clients?prefix=" + searchTextSmallLetters,
                dataType: "json",
                headers: {
                    'Content-Type': 'application/json; charset=utf-8'
                }
            }).then(function successCallback(response) {
                if (response.status == 200) {
                    alert('success');
                }
                else {
                    alert('fail');
                }
            }, function errorCallback(response) {
                alert(response.status);
                alert('fail');
            });
        }
};

Рабочий контракт WCF на услугу:

[OperationContract]
[WebGet(RequestFormat = WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json,UriTemplate = "/Clients?prefix={prefix}")]
List<string> GetClients(string prefix);

Функция завершается сбоем, вызывая предупреждение с кодом состояния "-1". Когда я проверяю один и тот же вызов в скрипаче, он возвращает найденных клиентов, с кодом состояния 200.

Надеюсь, кто-то может мне помочь. Любые предложения или комментарии будут замечательными. Спасибо.

  • 0
    WCF размещается в том же домене, что и код angularjs.
  • 0
    тогда почему вы должны поместить http://XX.XXX.XX.XX:XX в URL - вы просто используете путь - не http://XX.XXX.XX.XX:XX внимания на мое предложение CORS
Показать ещё 1 комментарий
Теги:
wcf

1 ответ

0

Из памяти, в прошлом, я получил аналогичное поведение (код статуса CN00) от js, когда:

  • Я делал перекрестные вызовы домена, а вызов OPTIONS терпел неудачу. Использованная структура не смогла правильно обработать результат не 200. От https до http или http (s) с другим портом может возникнуть это, см. Https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control. Я бы посмотрел в консоли разработчика Chrome, чтобы узнать, какие вызовы сделаны и что было результатом (без использования Fiddler!)
  • отладка с использованием Fiddler и вызов https

Ещё вопросы

Сообщество Overcoder
Наверх
Меню