我试图使用jQuery Ajax将字符串参数数组传递给C#ASP.NET web服务。这是我的示例web方法。请注意,该函数接受数量可变的参数。当我运行jquery时,Chrome的javascript控制台中出现500个内部服务器错误。我正在使用jquery1.6.2和.NET3.5
[WebMethod]
公共字符串Concat(参数字符串[]arr)
{
字符串结果=”;
对于(int i=0;i<;阵列长度;i++)
{
结果+=arr[i];
}
返回结果;
}
以下是jquery:
$(文档).ready(函数(){
var myCars=新数组();
myCars[0]=“萨博”;
myCars[1]=“沃尔沃”;
myCars[2]=“宝马”;
$.ajax({
类型:“POST”,
url:“WebService.asmx/Concat”,
数据:{arr:myCars},//不知道在这里放什么
成功:一旦成功,
错误:onError
});
});
函数onSuccess()
{
警报(“测试”);
}
函数onError()
{
警报(“失败”);
}
</脚本>;
感谢您的帮助
修订的服务器端代码:
[WebMethod]
公共字符串Concat(列表<;字符串>;arr)
{
字符串结果=”;
对于(int i=0;i<;阵列计数;i++)
{
结果+=arr[i];
}
返回结果;
}
另外,在WebService类声明上方添加以下内容:
[System.Web.Script.Services.ScriptService]
修改的客户端代码:
$(文档).ready(函数(){
var myCars=新数组();
myCars[0]=“萨博”;
myCars[1]=“沃尔沃”;
myCars[2]=“宝马”;
$.ajax({
类型:“POST”,
url:“WebService.asmx/Concat”,
数据:JSON.stringify({arr:myCars}),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:一旦成功,
失败:onError
});
});
函数onSuccess(响应){
警报(response.d);
}
函数onError(){
警报(“失败”);
}
此外,在该脚本块上方添加对JSON2的引用,例如:
<;脚本src=”http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js“></脚本>;
注:
- 我已经在.NET4下使用jQuery1.6.4对其进行了测试
- 确保客户端和服务器变量名保持同步:
公共字符串Concat(List<;string>;arr)数据:JSON.stringify({arr<myCars}) -