我可以成功从我的Web服务接收值,因此在这方面,脚本工作正常。但是,我现在正尝试使用下面的“数据”字段将数据发送到Web服务。我无法弄清楚如何将简单的字符串(例如“test”)发送到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);
}
答案 0 :(得分:9)
对于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)
{
}
}
答案 1 :(得分:1)
jQuery获取data参数并将其转换为适当类型的请求变量。
所以你使用类似的东西:
data: { myParameterName: "myParameterValue", myParameterName2: "myParameterValue2" }
和jQuery为你完成剩下的工作。
基于评论的具体示例:
data: { toSend: "test" }
答案 2 :(得分:0)
data: "{"parameterName": "test"}"
:public void GetData(string parameterName) {}