我在我的应用程序中使用ajax,我必须使用$.post
方法。
通常,发送到服务器的数据是键值对。我可以通过它们:
HttpContext.Current.Request.QueryPara['name'];
....
但在某些情况下,要发送到服务器的数据不包含名称。
它只是一个xml段。
像这样:
var data='<data>xxxxx<data>';
$.post('http://server/service.asmx/test',data,function(){
//callback
},'xml');
那我怎样才能在网络方法中获取数据?
答案 0 :(得分:0)
您必须使用'json'dataType将数据传递给Web方法。
看看样本:
Service.asmx
[ScriptService]
[WebService(Namespace = "http://localhost/testapp/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService{
[WebMethod]
public int Square(int no){ return no * no;}
}
和JavaScript代码请求此 webmethod
<script type="text/javascript">
$(function () {
$("#button1").click(function () {
$.ajax({
type: "post",
url: "service.asmx/Square",
data: "{no: 10}",
dataType: "json",
contentType: "application/json",
success: function (data) {
alert("Result :" + data.d);
},
error: function (src,type,msg) {
alert(msg); //open JavaScript console for detailed exception cause
}
});
});
});
</script>
<body>
<input type="button" id="button1" value="Square" />
</body>
答案 1 :(得分:0)
我不确定asp.net是否可以做到这一点。但你总能提供这样的名字:
var data= { data: '<data>xxxxx<data>'};
$.post('http://server/service.asmx/test',data,function(){
//callback
},'xml');
然后在服务器上,您可以通过
访问var data = Request.Params("data");