[英]How to send 'data' to ASMX web service via AJAX POST?
我可以成功从我的Web服务接收值,所以在那个方面,脚本工作正常。 但是,我现在正尝试使用下面的“数据”字段将数据发送到Web服务。 我无法弄清楚如何将一个简单的字符串(例如“测试”)发送到Web服务,这是我的Web方法期望作为参数。
任何帮助深表感谢。 例如:
function setQuestion() {
$.ajax({
type: "POST",
**data: "{}",** //how do i use this to send a string??
dataType: "json",
url: "http://someURL",
contentType: "application/json; charset=utf-8",
success: onSuccess
});
}
function onSuccess(msg) {
$("#questiontxt").append(msg);
}
对于asmx,您需要传递数据对象的字符串化版本,例如:
var data = "{param1:" + param1IsANumber +
", param2:\"" + param2IsAString + "\"}";
$.ajax({
data: data,
dataType: "json",
url: url,
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (result) {}
});
或者你可以hava一个对象并使用jquery-json
var data = {};
data.param1 = 1;
data.param2 = "some string";
$.ajax({
data: jQuery.toJSON(data),
dataType: "json",
url: url,
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (result) {}
});
最后,您的Web服务类必须如下所示:
[WebService(Namespace = "http://www.somedomainname.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void MyServiceCall(int param1, string param2)
{
}
}
jQuery获取data参数并将其转换为适当类型的请求变量。
所以你使用类似的东西:
data: { myParameterName: "myParameterValue", myParameterName2: "myParameterValue2" }
和jQuery为你完成剩下的工作。
基于评论的具体示例:
data: { toSend: "test" }
data: "{"parameterName": "test"}"
在WebService中: public void GetData(string parameterName) {}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.