2015-10-20 44 views
3

这里我使用的是一个webmethod'InsertData'。我可以传递查询string["json.aspx/InsertData?username="+name+"......"]而不是像data那样传递参数吗?如果我使用查询字符串,是否有任何优势?我可以像查询字符串一样传递web方法参数吗?

$.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "json.aspx/InsertData", 
     data: "{'username':'" + name + "','subj':'" + subject + "','desc':'" + body + "'}", 
     dataType: "json", 
     success: function(data) { 
       var obj = data.d; 
       if (obj == 'true') { 
         $('#txtname').val(''); 
         $('#txtsubject').val(''); 
         $('#txtbody').val(''); 
         $('#lblmsg').html("Details Submitted Successfully"); 
       } 
     }, 
     error: function(result) { 
       alert("Error"); 
     } 
}); 
+0

为什么你需要把它作为查询paramerters,任何具体的理由? – dreamweiver

+0

我想知道有没有办法,以减轻我的网址加密,并知道哪一个更有优势? – Akhil

+0

@dreamweiver没有更具体的原因,但为什么我们不使用像查询字符串? – Akhil

回答

4

我想在2个disavantages:

  1. 如果您使用的查询字符串传递数据,该数据是在浏览器URL可见
  2. 的网址有一定长度的限制取决于Web服务器上,所以如果你把大量的数据放在URL中,服务器可能会拒绝你的请求。如果Request Limits超过URL的长度,IIS将返回404.14。

要查询字符串传递给WEBMETHOD做到以下几点:

  • 你必须设置的URL与查询字符串参数

  • 你必须得到在服务器端这个参数从Request对象中获取它们。

客户端

var url = "json.aspx/InsertData?username=" + name + "&subj=" + subject + "&desc=" + body; 

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: url, 
    dataType: "json", 
    success: function(data) { 
      var obj = data.d; 
      if (obj == 'true') { 
        $('#txtname').val(''); 
        $('#txtsubject').val(''); 
        $('#txtbody').val(''); 
        $('#lblmsg').html("Details Submitted Successfully"); 
      } 
    }, 
    error: function(result) { 
      alert("Error"); 
    } 
    }); 

在您需要检查Request对象的服务器端:

[WebMethod(EnableSession=true)] 
    public static object InsertData() 
    { 
     var name = HttpContext.Current.Request.QueryString["username"]; 
     var subject = HttpContext.Current.Request.QueryString["subject"]; 
     var desc = HttpContext.Current.Request.QueryString["desc"]; 

     // Do some work 
    } 
+0

谢谢@anmarti为这个代码提供了详细的解释,我正在考虑考虑这些将会带来的好处。非常感谢。 – Akhil

+0

看看这个问题http://stackoverflow.com/questions/8514986/get-and-post-vs-query-string – anmarti

+0

谢谢@ anmarti,有一个想法 – Akhil

相关问题