Javascript 如何发送';数据';通过ajaxpost访问asmxweb服务?
我可以成功地从我的web服务接收值,这样脚本就可以正常工作了。但是,我现在尝试使用下面的“数据”字段将数据发送到Web服务。我不知道如何向web服务发送一个简单的字符串(例如“test”),这是我的web方法所期望的参数 非常感谢您的帮助。例如:Javascript 如何发送';数据';通过ajaxpost访问asmxweb服务?,javascript,ajax,post,Javascript,Ajax,Post,我可以成功地从我的web服务接收值,这样脚本就可以正常工作了。但是,我现在尝试使用下面的“数据”字段将数据发送到Web服务。我不知道如何向web服务发送一个简单的字符串(例如“test”),这是我的web方法所期望的参数 非常感谢您的帮助。例如: function setQuestion() { $.ajax({ type: "POST", **data: "{}",** //how do i use this to send a string?? dataType: "
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);
}
var data = "{param1:" + param1IsANumber +
", param2:\"" + param2IsAString + "\"}";
$.ajax({
data: data,
dataType: "json",
url: url,
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (result) {}
});
数据:“{”参数名“:“测试”}”
在WebService中:
public void GetData(string parameterName){}
jQuery获取数据参数并将其转换为适当类型的请求变量
因此,您可以使用以下内容:
data: { myParameterName: "myParameterValue", myParameterName2: "myParameterValue2" }
jQuery将为您完成其余的工作
基于注释的具体示例:
data: { toSend: "test" }
对于asmx,您需要传递数据对象的字符串化版本,例如:
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);
}
var data = "{param1:" + param1IsANumber +
", param2:\"" + param2IsAString + "\"}";
$.ajax({
data: 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)
{
}
}
感谢Dave,但是我仍然得到了一个异常:“无效的JSON原语:value”…你能发布你试图发布到的ASMX函数的声明吗?没关系Dave,这样工作:data:“{”value:“test”}”,这很奇怪,你不需要将数据作为字符串发送。但我想如果它起作用的话……戴夫,你必须把它作为字符串发送给asmx。Davey1990,使用$.toJSON()…见下面我的答案。嗨,petrov,我也得到了解决方案的“无效JSON原语”异常。我还需要web服务中名为“GetData”的方法来检索该数据吗?好的,我的解决方案不起作用,因为我使用了相同的quotesGreat。实际上,您应该引用参数名称,例如“{\“param1\”:“+p1+”}”,但它在没有:)的情况下确实可以工作。)