Я использую следующий код для вызова службы 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.
Надеюсь, кто-то может мне помочь. Любые предложения или комментарии будут замечательными. Спасибо.
Из памяти, в прошлом, я получил аналогичное поведение (код статуса CN00) от js, когда:
http://XX.XXX.XX.XX:XX
в URL - вы просто используете путь - неhttp://XX.XXX.XX.XX:XX
внимания на мое предложение CORS