2016-09-06 2 views
1

웹 서비스 프로젝트를 실행할 때 클라이언트 클라이언트의 DOJO 코드를 다운로드 할 수있는 기본 페이지로 리디렉션 된 ASP.NET HttpHandler를 사용하여 RESTful 웹 서비스를 빌드했습니다. 여기 DOJO를 RESTful 웹 서비스와 함께 사용

enter image description here

다운로드 한 파일에서 코드입니다 :

function PickrWebService(){ self = this; } 

PickrWebService.prototype = { 
self: null, 
urlString: "http://AYMAN/Handler.ashx", 
CreateUser:function(Email,Username,Password,FirstName,Surname,Birth,Gender,Mobile,Picture,Address,successFunction,failFunction,token) { 
    var data = { 'interface': 'PickrWebService', 'method': 'CreateUser', 'parameters': {'Email':Email,'Username':Username,'Password':Password,'FirstName':FirstName,'Surname':Surname,'Birth':Birth,'Gender':Gender,'Mobile':Mobile,'Picture':Picture,'Address':Address}, 'token': token }; 

    var jsonData = dojo.toJson(data); 
    var xhrArgs = { 
     url: self.urlString, 
     handleAs: 'json', 
     postData: jsonData, 
     load: successFunction, 
     error: failFunction }; 
    var deferred = dojo.xhrPost(xhrArgs); 
}, 
CheckUserExistence:function(Email,successFunction,failFunction,token) { 
    var data = { 'interface': 'PickrWebService', 'method': 'CheckUserExistence', 'parameters': {'Email':Email}, 'token': token }; 

    var jsonData = dojo.toJson(data); 
    var xhrArgs = { 
     url: self.urlString, 
     handleAs: 'json', 
     postData: jsonData, 
     load: successFunction, 
     error: failFunction }; 
    var deferred = dojo.xhrPost(xhrArgs); 
} 
} 

내 클라이언트 응용 프로그램에서이 코드를 사용하는 방법에 대한 도움이 필요하고, 매개 변수를 무엇에 '토큰'참조 ?

답변

1

코드는 메소드를 호출하여 웹 서비스를 호출 할 수있는 서비스 용 자바 스크립트 객체입니다. tokendojo.xhrPost의 일부가 아니며 인증 토큰을 전달하는 데 ASP.Net에서 온 것일 수 있습니다. 서비스에 보안을 설정하지 않았다면 무시할 수 있습니다.

var successFunction = function(args){ 
    //Handle the success response. 
} 

var failFunction= function(err){ 
    //Handle the failure response. 
} 

var service = new PickrWebService(); 
service.createUser(Email,Username,Password, 
    FirstName,Surname,Birth,Gender,Mobile,Picture,Address,successFunction,failFunction); 

위의 코드 외에도 클라이언트에 dojo api를 추가해야합니다.

+0

고맙습니다. 다음 구현을 사용했습니다. var service = new PickrWebService(); service.CheckUserExistence ("[email protected]", successFunction, failFunction, ""); 이제 XMLHttpRequest 오류가 발생합니다. 'Access-Control-Allow-Origin'헤더가 요청 된 리소스에 존재하지 않습니다. 동일한 원본 정책 문제를 피할 수있는 해결 방법이 있습니까? – AymanKun

+1

서버 측에서 크로스 도메인을 활성화해야합니다 (예 : asp.net 나머지 API). 이를 사용하는 방법에 대한 IIS 도움말을 확인하십시오. –

+0

정확히! 내 서버 쪽 프로젝트의 Web.config 파일에 다음 줄을 중첩했습니다. ... 또한 헤더 : { "X-Requested-With": null }을 클라이언트 쪽에서 dojo.xhrPost() 함수에 전달 된 xhrArgs에 추가하십시오. – AymanKun

관련 문제