Jquery Ajax调用Webservice 报错500

kuawai 2013-10-31 05:23:39
这个是我用来调用WebService的代码。
$.ajax({
type: 'POST',
url: "WebService2.asmx/HelloWorld",
contentType: "application/json:charset=utf-8",
datatype: 'json',
daa:{str:'sadsad'},
beforeSend: function (XMLhttpRequest) {
alert('loading');
},
success: function (data) {
alert($(data).find('string').text());

},
error: function (error) {
alert(error.responseText);
}
});
 

这个是WebService里的代码
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
public class WebService2 : System.Web.Services.WebService {

public WebService2 () {

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}

//[WebMethod]
//public string HelloWorld() {
// return "Hellow World";
//就是默认的WebService的代码,然后加了个参数
[WebMethod]
public string HelloWorld(string str)
{
return "Hellow World and"+str;
}

我在WebService里面单独调用是没有问题的,调用那个默认的HelloWorld也是没有问题的。但是是要加了参数,而且就算data:{}不填写他都要报错500"Internal Server Error"
实在搞不定了,请教大神们。
...全文
2660 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuawai 2013-11-01
  • 打赏
  • 举报
回复
引用 6 楼 libinguest 的回复:
ASP.NET 2.0 AJAX中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX      版本为AJAX November CTP。      三个示例分别为:   1 带参数的WS方法   2 不带参数的WS方法   3 参数类型为DataTable的WS方法      一、WebMethod   注意要点:   1 WebMethod类需要添加命名空间 Microsoft.Web.Script.Services,此空间需要引用Microsoft.Web.Preview.dll   2 类声明加入标签 [ScriptService]   3 在Asp.net 2.0里可以直接用DataTable作为返回类型了,但是需要在Web.config文件添加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器
我又查了一下,他们说在WebConfig中添加<system.webServer> <handlers> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </handlers> </system.webServer>就能解决,但是我加进去了还是不行。
kuawai 2013-11-01
  • 打赏
  • 举报
回复
引用 6 楼 libinguest 的回复:
ASP.NET 2.0 AJAX中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX      版本为AJAX November CTP。      三个示例分别为:   1 带参数的WS方法   2 不带参数的WS方法   3 参数类型为DataTable的WS方法      一、WebMethod   注意要点:   1 WebMethod类需要添加命名空间 Microsoft.Web.Script.Services,此空间需要引用Microsoft.Web.Preview.dll   2 类声明加入标签 [ScriptService]   3 在Asp.net 2.0里可以直接用DataTable作为返回类型了,但是需要在Web.config文件添加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器
大神请看看
kuawai 2013-11-01
  • 打赏
  • 举报
回复
我照着改了一下。
我的.Net是4.5了
这个是我调用的WebService页面

输入的参数

然后调用,结果是没问题

但是我在前端调用的时候报错了,我返回的一个error.responseText
是这个样子的

啊···本来逻辑多么简单的一个问题在我这里怎么搞出来了那么多乱子。
风之影子 2013-11-01
  • 打赏
  • 举报
回复
ASP.NET 2.0 AJAX中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX      版本为AJAX November CTP。      三个示例分别为:   1 带参数的WS方法   2 不带参数的WS方法   3 参数类型为DataTable的WS方法      一、WebMethod   注意要点:   1 WebMethod类需要添加命名空间 Microsoft.Web.Script.Services,此空间需要引用Microsoft.Web.Preview.dll   2 类声明加入标签 [ScriptService]   3 在Asp.net 2.0里可以直接用DataTable作为返回类型了,但是需要在Web.config文件添加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器
风之影子 2013-11-01
  • 打赏
  • 举报
回复
稍等,我测试一下。
kuawai 2013-11-01
  • 打赏
  • 举报
回复
引用 1 楼 libinguest 的回复:
利用IDE开发环境可以对webservice进行调试
我就是用调试单独打开了WebService页面,调试没问题的,但是我在Ajax里一调用就出问题了。
kuawai 2013-11-01
  • 打赏
  • 举报
回复
引用 1 楼 libinguest 的回复:
利用IDE开发环境可以对webservice进行调试
麻烦大神说一下吧,我没找到啊,我用的VisualStudio2012.
风之影子 2013-11-01
  • 打赏
  • 举报
回复
利用IDE开发环境可以对webservice进行调试

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧