Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何发送';数据';通过ajaxpost访问asmxweb服务?_Javascript_Ajax_Post - Fatal编程技术网

Javascript 如何发送';数据';通过ajaxpost访问asmxweb服务?

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: "

我可以成功地从我的web服务接收值,这样脚本就可以正常工作了。但是,我现在尝试使用下面的“数据”字段将数据发送到Web服务。我不知道如何向web服务发送一个简单的字符串(例如“test”),这是我的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);
}
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+”}”,但它在没有:)的情况下确实可以工作。)