2013-04-10 108 views
1

我有一个C#web应用程序,我在其中使用ajax调用Web服务。 Ajax代码看起来像下面Ajax调用webservice

$.ajax({ 
        type: 'GET', 
        url: "WebServices/testwebService.asmx/Methodname", 
        contentType: "application/json; charset=utf-8", 
        data: { value: "string" }, 
        dataType: 'xml', 
        success: function (data) { 
         alert(data); 
        }, 
        error: function (data) { 
         alert("In error"); 
        } 

       }); 
      }); 

服务“的WebServices/testwebService.asmx/METHODNAME”返回字符串列表(或者可以是一个字符串)

这里,如果im捐赠类型:“GET”和dataType:'json'它重定向到错误部分。

如果数据类型'json'或'string'的类型为'POST',或dataType'xml'或'string'的类型为'GET',它将被重定向到成功部分。和'xml'dataType类型:'POST'重定向到错误部分。

我非常困惑于ajax中的dataType概念。

当我检查Firebug时,响应数据总是以xml格式。

+0

很可能你的web服务没有返回JSON数据,因此你得到了一个分析错误。 – yogi 2013-04-10 07:51:51

+0

我们是否需要以ajax预期的任何格式解析webservice中的数据?或者webservice自动执行任何类型的数据解析? – Sudha 2013-04-10 09:09:13

回答

1

如果您使用json dataType,服务器应该返回一个json。如果您对数据类型有任何疑问,请通过this链接。

1

ASMX SOAP网络服务调用使用HTTP-POST Protocol.So理想的“类型”中的AJAX调用 参数的值应为“POST”方法。(check the MSDN documentation

关于数据类型,则响应数据完全取决于您在ajax调用中提及的数据类型。根据数据类型参数JQuery处理来自服务器的响应,该响应始终是SOAP Web服务的XML。

如果您将数据类型参数值设置为'xml',您将在成功回调函数中获得一个XML文档。如果将它设置为JSON,您将在成功回调函数中获取JSON对象。