繁体   English   中英

如何通过AJAX POST将“数据”发送到ASMX Web服务?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM