좋아, 여기에 내가 뭘하려고 오전, 나는 활성 디렉토리에서 모든 사용자를 얻으려면 목록에 넣어, 그래서 내가 아약스에서 웹 서비스를 호출하는 모든 사용자를 얻으려면 목록 문자열을 넣어, 그리고 나중에 내가 jquery 자동 완성 텍스트 상자에 내가 전에 가지고있는 사용자의 목록에 사용하고 싶습니다.ajax에서 웹 서비스를 제대로 호출하는 방법은 무엇입니까?
$(document).ready(function() {
// Load data then initialize plugin:
$.ajax({
url: '/SvcADUser.asmx/GetADUserList',
dataType: 'json'
}).done(function (source) {
var countriesArray = $.map(source, function (value) { return { value: value }; }),
countries = $.map(source, function (value) { return value; });
// Setup jQuery ajax mock:
$.mockjax({
url: '*',
responseTime: 200,
response: function (settings) {
var query = settings.data.query,
queryLowerCase = query.toLowerCase(),
suggestions = $.grep(countries, function (country) {
return country.toLowerCase().indexOf(queryLowerCase) !== -1;
}),
response = {
query: query,
suggestions: suggestions
};
this.responseText = JSON.stringify(response);
}
});
// Initialize autocomplete with local lookup:
$('#MainCT_dtvJobVac_PIC').autocomplete({
lookup: countriesArray,
onSelect: function (suggestion) {
$('#selection').html('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
});
});
}());
}());
을하지만 내가 SvcADUser.asmx에 URL을 변경하는 경우, 그것은 오류를주고 있지만, 나에게 어떤 결과를 제공하지 않습니다, 나에게 오류, "NetworkError: 500 Internal Server Error - http://localhost:60525/SvcADUser.asmx/GetADUserList"
을 던져 :
이 내가하는 일입니다.
내가 뭘 잘못 했니?
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class SvcADUser : System.Web.Services.WebService
{
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public List<string> GetADUserList(string keyword)
{
List<string> alluser = new List<string>();
using (var context = new PrincipalContext(ContextType.Domain, "weekendinc.com"))
{
using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
{
foreach (var result in searcher.FindAll())
{
DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
alluser.Add((string)de.Properties["samAccountName"].Value);
}
}
}
var filtereduser = alluser.Where(usr => usr.ToLower().StartsWith(keyword.ToLower()));
return filtereduser.ToList();
}
}
시도 : BTW 여기 내 웹 서비스 코드는? –
아니요, 내 asmx 파일이 오류를 반환하지 않았으므로 잘 작동합니다. 사용자 목록을 반환합니다. – NomNomNom
웹 서비스가 작동 중입니다. 시도하고 아약스에 성공과 오류를 넣어. 당신이 response.d를 잡아서 그것으로부터 데이터를 검색 할 수 있는지보십시오. 나는 그것을 당장 제대로 풀기 위해 고생했다. 그래서 나는 [블로그 게시물] (http://wimombelets.blogspot.be/2013/03/consuming-aspnet-web-services-with-ajax.html)을 작성했다. 나는 그것을 잊지 않을 것입니다. 아마 당신은 그것을 사용할 수있을 것입니다. 어떤 이유로 코드가 작동하는 –