jQuery + Ajax를 사용하여 홈 메이드 vb.net 웹 서비스를 호출하려고하고 있습니다. 세부 사항에 어려움을 겪고 있습니다. 내가 XML을 반환하지만, 만약 내가 그들을 필요로하지 않습니다 말해 주시기 된 이후 나는 ScriptMethod 추가 한 웹 속성을 찾고 후jQuery + Ajax에서 .Net 웹 서비스 호출
<WebMethod()> <ScriptMethod(ResponseFormat:=ResponseFormat.Xml, UseHttpGet:=True)> _
Public Function GetAllVotes() As XmlDocument
Dim theVotes = getVotes()
Dim strResult As String = theVotes.XMLSerialize
Dim doc As XmlDocument = New XmlDocument()
doc.LoadXml(strResult)
Return doc
End Function
: 여기
는 웹 방법으로 노출 된 작은 함수의 그렇습니다. 나는 포스트를 사용하거나 얻을,이 코드의 많은 .. 많은 변화를 시도했습니다function getVotes() {
$.support.cors = true;
$.ajax({
type: "GET",
contentType: "application/json",
url: "http://nhrd635:8008/votingmanager.asmx/GetAllVotes",
data: {},
dataType: "xml text jsonp",
success: function(msg) {
// Hide the fake progress indicator graphic.
// Insert the returned HTML into the <div>.
$('#myPlaceHolder').html(msg);
},
error: function(msg) {
$('#myPlaceHolder').html(msg);
// alert(msg);
}
});
}
하거나하지 않고, 내용 유형을 변경 :
그런 다음, 클라이언트 측에서,이 코드는 charset = utf-8. 데이터에 큰 따옴표가 있거나없는 경우 : {}.
나는 나의 요청을 추적하기 위해 방화 광구를 사용합니다. jsonp에 dataType을 설정할 때만 결과를 얻을 수 있지만 모든 인스턴스에서 코드는 상태가 200 OK 일 때도 "오류"기능을 종료합니다. 하지만 jsonp로 설정하는 것은 잘못된 것이므로 실제 XML로 처리되는 XML을 얻게됩니다 ...
나는 encosia에있는 사람으로부터 매우 유용한 블로그 항목을 읽었습니다. (샘플 : http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/)
그러나 그의 예를 따르더라도 적절한 반환을 얻을 수 없습니다.
내가 뭔가 잘못하고있는 것이 분명합니다. 그것은 사실 json 직렬화 된 문자열 대신 xml 문자열을 반환하는 사실입니까?
가 좋아, 그 말이, 불행하게도이 스크립트가있다 교차 도메인을 운영합니다. 간단한 설명으로, 좋은 관리자가 투표 기능을 사용하지 못하게하는 우리 사이트의 Sharepoint 2010 투표 기능을 다시 만들려고 시도하고 있습니다 ... 그래서 우리는 sharepoint 웹과 작동하는 WS를 만들어서 우리 자신을 만들 것이라고 생각했습니다. 서비스. 어쨌든 ... 나는 jsonp 데이터 유형을 사용할 때 언급 한 것처럼 방화 광이 응답을 봅니다. 비록 "오류"처리기에 빠졌더라도 오류 처리기에서 jquery의 응답을 읽는 것이 가능하고 어떻게 든 다시 캐스팅하는 방식으로 해킹되거나 다시 HTML로 변환됩니다. – Stephane
@Stephane : 원격 서버를 제어하지 않으면 로컬 서버의 HttpHandler를 사용하여 동일한 출처 정책 (http://encosia.com/use)을 위반하지 않는 릴레이 역할을 수행 할 수 있습니다. -asp-nets-httphandler-to-bridge-the-cross-domain-gap/ –
흥미 롭군요, 최근에 제가 부딪히는 모든 문제에 블로그에 블로그가있는 것 같습니다 ... 아약스 응답을 얻을 수 없다는 것을 깨닫고 jsonp 형식 일지라도 간단한 방법은 내 웹 서비스를 간단한 웹 요청으로 호출 할 수있는 일련의 작은 웹 페이지로 "변환"하는 것이었지만 추악하고 성가시다. 나는 당신의 HttpHandler 게시물에 대한 모든 것을 아직 이해하지 못하고 있지만 그것은 유망한 것으로 보인다. 도와 주셔서 감사합니다. 정말로 감사드립니다. – Stephane