当前位置:编程学习 > C#/ASP.NET >>

Jquery Ajax调用Webservice 报错500

这个是我用来调用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"
实在搞不定了,请教大神们。 ASP.NET WebService Jquery Ajax --------------------编程问答-------------------- 利用IDE开发环境可以对webservice进行调试
--------------------编程问答--------------------
引用 1 楼 libinguest 的回复:
利用IDE开发环境可以对webservice进行调试

麻烦大神说一下吧,我没找到啊,我用的VisualStudio2012. --------------------编程问答--------------------
引用 1 楼 libinguest 的回复:
利用IDE开发环境可以对webservice进行调试
我就是用调试单独打开了WebService页面,调试没问题的,但是我在Ajax里一调用就出问题了。 --------------------编程问答-------------------- 稍等,我测试一下。 --------------------编程问答-------------------- http://www.php100.com/html/webkaifa/ajax/2006/1127/2010.html --------------------编程问答-------------------- 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均有转换器 --------------------编程问答-------------------- 我照着改了一下。
我的.Net是4.5了
这个是我调用的WebService页面

输入的参数

然后调用,结果是没问题

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

啊···本来逻辑多么简单的一个问题在我这里怎么搞出来了那么多乱子。 --------------------编程问答--------------------
引用 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均有转换器

大神请看看 --------------------编程问答--------------------
引用 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>就能解决,但是我加进去了还是不行。
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,