从angularjs调用WCF服务返回-1
本文关键字:返回 服务 WCF angularjs 调用 | 更新日期: 2023-09-27 18:05:35
我使用以下代码从angularjs调用WCF服务。此函数将在更改文本框时调用。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"的警告消息。当我在fiddler中检查相同的调用时,它返回搜索的客户端,状态码为200。
希望有人能帮助我这个。任何建议或评论将是伟大的。谢谢你。
从记忆中,在过去我得到了类似的行为(-1状态码)从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调用