如何使用angularjs使用post请求将对象和字符串传递给Web服务

时间:2014-11-16 12:38:46

标签: html5 angularjs web-services

对于angularjs非常新,我需要将数据发布到Web服务,该服务接受两个参数,一个是List of object,另一个是securityToken,

这是我的代码,

$scope.saveCompany=function(){

      // alert("Save Company!!!");

     var Companies={
        Code: 'testMartin',
        Name: 'company1',
        CompanyType : 'Tenant',
        email : 'test@yaoo.com',
        Fax : 4235353,
        ParentID : 1

    };
    $http({
        url:'http://localhost/masters/smstools.svc/json/SaveComapnies',
        dataType: 'json',
        method: 'POST',
        data: $.param(Companies),
        headers: {
            "Content-Type": "text/json",
        }

    }).success(function(response){
        alert ("Success");
    }).error(function(error){
        alert ("Save company!");
    });

如何将公司对象作为单独的参数传递安全令牌。我的服务接受这样的参数,

 public List<CompanyProfile> Save(List<CompanyProfile> CompanyList,string securityToken)

2 个答案:

答案 0 :(得分:0)

由于这是一个休息电话,你只有3个地方可以传递参数数据:

使用发布并且它将成为正文的一部分,看起来这就是您现在占用的第一个参数。

使用获取并将参数添加到网址/json/SaveComapnies/mySecParam或通过queryString添加/ json/SaveComapnies?sec=mySecParam,但这不安全,也不建议用于安全设置。

来自角贴的标题

    **headers: {
        "Content-Type": "text/json",
        "mySecVar": "mySecParamValue"
    }**

服务器端版本:

public List<CompanyProfile> Save(List<CompanyProfile> CompanyList){

    WebOperationContext current = WebOperationContext.Current;
    WebHeaderCollection headers = current.IncomingRequest.Headers;

    if (headers["mySecVar"] != null){
         // do something
    }
}

您可以在此处详细了解:

How to read HTTP request headers in a WCF web service?

答案 1 :(得分:0)

您可以在后端分享更多信息吗?

如果它实际上是一个REST后端,我宁愿使用角度$资源

https://docs.angularjs.org/api/ngResource

如果你想将json对象和字符串作为post参数传递,你应该坚持使用$ http docs

https://docs.angularjs.org/api/ng/service/ $ HTTP

在帖子示例中,您可以传递两个参数:

$http.post('/yourEndpoint', {jsonObj:yourCompaniesObj, secKey:yourSecretToken})....(sucess etc)

从我的单元格中键入 - 如果您需要更多代码示例,请告诉