2014-04-17 2 views
0

각도에서 WCF json 서비스 끝점에 게시하려고하지만 내 시도가 실패했습니다. 서비스가 다른 방법으로 작동하고 지정된 URL에서 작동하는지 확인했습니다.각도가있는 WCF json 끝점에 게시

I과 같은 요구되는 출력을 볼 수 방화 사용 :

NetworkError: 400 Bad Request - http://www.myapi.com/V1/Service.svc/Authenticate?Password=password&UserName=username "

각 코드

app.service('UserService', function ($http) { 
this.GetLoginStatus = function (AuthenticateRequest) { 
    $http({ 
     url: APIURL + "/Authenticate", 
     method: "POST", 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded' 
     }, 
     params: AuthenticateRequest, 
     data: { 
      'Code': 'test data' 
     } 
    }); 
}; 

});

WCF Iservice

[WebInvoke(RequestFormat = WebMessageFormat.Json, 
ResponseFormat = WebMessageFormat.Json, 
Method = "POST", 
BodyStyle = WebMessageBodyStyle.Wrapped)] 
[OperationContract] 
AuthenticateResponse Authenticate(AuthenticateRequest Request); 

요청 정의

[DataContract] 
public class AuthenticateRequest 
{ 
    [DataMember] 
    public String UserName { get; set; } 
    [DataMember] 
    public String Password { get; set; } 
} 
+0

서비스에 대한 기본 인증은 어디에서 설정하고 정의합니까? 인증 문자열이 좋다고 확신하십니까? 크롬에서 우편 배달부를 사용합니까? – aet

+0

코드를 업데이트하고 해당 행을 삭제했습니다. 나는 우편 배달부를 사용했다. – CodeMilian

+0

WCF에 익숙하지 않지만 XML 요소를 추가하기위한 wrapped() 스타일이 아닙니까? Api가 단지 json을 말하기위한 의도라면, 아마도 원하지 않을 것입니다. 또한, 나는 당신이 본문에있는 내용을 (데이터 서비스에서) 쿼리 매개 변수가 아닌 (POST가 기대하는 것처럼) 보낼 수 있다고 생각할 수도 있습니다. – aet

답변

1

나는이 자바 스크립트 객체를 stringfy이 - 보내고 수행 얻을 수 있었다.

Service.js 

     angular.module('myModule').factory('serviceFac', ['$http', '$q', 
function (a, b) 
    { var taskMergeServiceNameSet = "WebServuice.svc/Tasks/SetTasks"; 
      return { 
       setTasksMerge: function (taskIds, action) { 

       var objArray = ''; 
       var obj = { 
         taskIds: taskIds, 
         action: action, 
         userName: "ss" 
        }; 
       objArray = new Array(); 
       objArray.push(obj); 
       var deferred = b.defer(); 
       a({ 
        url: taskMergeServiceNameSet, 
        method: 'POST', 
        headers: { 'Content-Type':'application/json; charset=utf-8'}, 
        data: JSON.stringify(objArray) 
        } 
       ).sucess(function (data) { deferred.resolve(data) }) 
        .error(function (msg, code) { deferred.reject(msg) });  
        return deferred.promise; 
       } 
      } 
     }]); 

서비스 계약

ServiceContract Interface 

[ServiceContract] 
public interface ITasks 
{ 
    [OperationContract] 
    [WebInvoke(Method = "POST",RequestFormat=WebMessageFormat.Json , 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "Tasks/SetTasksForMerge")] 
    string CreateNewTaks(valObj[] values);   
} 

[DataContract] 
public class valObj 
    { 
    [DataMember] 
    public string taskIds { get; set; } 
    [DataMember] 
    public string action { get; set; } 
    [DataMember] 
    public string userName { get; set; } 
    } 

포스트 here는 나에게 많은 도움이되었습니다. JSON 문자열 전달에 성공하면 알려주십시오.

관련 문제