2015-10-20 55 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

相關問題