2013-01-31 3 views
0

AJAX를 사용하여 자바 스크립트에서 간단한 문자열을 VB.NET 웹 메서드로 보내고 반환하려고합니다. 여기VB.NET 웹 메서드로 문자열 전달 및 반환

function jQuerySerial() { 
//I SET A VARIABLE TO THE STRING I WANT TO PASS INTO MY WEB METHOD 
var str = "Hello World"; 

//AND TRY TO PASS IT INTO MY VB.NET WEB METHOD 
$.ajax({ 
    type: "POST", 
    url: "test_WebService.asmx/testWebService", 
    data: str, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (e) { 
     alert("It worked: " + e); 
    }, 
    error: function (e) { 
     alert("There was an error retrieving records: " + e); 
    } 
}); 
}//END jQuerySerial 

그리고는 아주 간단한 VB.net 웹 방법입니다 : 여기 내가 사용하고 자바 스크립트/jQuery를 스크립트입니다.

<WebMethod()> _ 
Public Function testWebService(str As String) As String 
    Return str 
End Function 

을 나는이 오류 실행하려고하면 : 웹 방법은 자바 스크립트로 다시 통과 한 후 문자열을 얻을 아무것도하지 않는다 기능 화재와라는 메시지를 반환

"There was an error retrieving records: [object Object]" 

내가 가진 이 동일한 웹 서비스 클래스에서 다른 많은 웹 메소드를 사용하여 데이터베이스 레코드를 조작하고 모두 작동합니다. 하지만, 이것은 내가 $ .ajax 구문을 사용하여 작성하고 호출 자바 스크립트에 어떤 것을 반환하려고 시도한 첫 번째 시도이므로 여기서 잘못된 점을 전혀 알지 못합니다.

이 작품을 만드는 방법에 대한 제안 사항에 감사드립니다. 감사합니다.

+0

도움이를 & 'alert' 대신'error' 함수를 사용합니다. $ .ajax()'error' 핸들러가 해고 되었기 때문에 오류가 JS에 있다고 가정하는 것이 안전합니다 - 보내기 전에 문자열을 유효한 json으로 변경하십시오 (예 :'str = { "hello": "world"}') – Labu

+0

@WillemLabu 귀하의 의견을 보내 주셔서 감사합니다. Joshua Whitley가 제공 한 링크의 정보는 물론 귀하의 의견을 청취하여 문제를 해결했습니다. 도와 주셔서 감사합니다. 나는 곧 내가 사용한 솔루션을 게시 할 것이다. –

+0

기꺼이 도와 드리겠습니다. : {D – Labu

답변

1

JSON 객체를 기대할 때 간단한 문자열을 웹 서비스에 전달하고있는 것처럼 보입니다. jQuery를 및 ASP.NET 웹 서비스 (특히 항목 2)와 일반적인 문제에이 문서 참조 :`success`에,``을 console.log (e)를 시도하면 JS 디버깅

http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

+0

감사합니다. Joshua. 제공 한 링크를 사용하여 입력 문자열을 다음과 같이 변경했습니다. var str = "Hello World"; to : var str = "{ 'str': 'hello world'}"; 이제 함수가 성공적으로 반환됩니다. 이제 메시지가 나타납니다 : "효과가있었습니다 : [object Object]". 문자열을 다시 파싱 할 수 있도록 반환 된 객체를 어떻게 읽을 수 있는지 알고 싶습니까? 감사합니다 –

+0

@Slaks는 저에게 응답 객체를 사용하는 방법에 대한 두 번째 질문에 대한 답을주었습니다. ASP.Net WebMethods는 d 속성을 사용하여 JSON 객체에 반환 값을 래핑합니다. (브라우저 개발자 도구의 응답 본문에서 확인할 수 있습니다.) 실제 값을 얻으려면 e.d를 작성해야합니다. 감사합니다. –

관련 문제