jQuery 调用WebService 返回的json数据报错

function SetContent(id,value){
               $('#divTitle').html(value);              
              $('#divContent').html("<img src='/help/style/loading2.gif' />");
                  $.ajax({
                    type: 'POST',
                    contentType: "application/json;utf-8", //WebService 会返回Json类型                        
                    url: '/common/Services/WSHelp.asmx/GetContent',                      
                     data:"{id:\""+id+"\"}",
                    dataType: 'json',
                    success: function(data) {

                       $('#divContent').html(data);
                    }
                });  
            }

上面怎么也返回不了正确的数据

改为var o = eval('(' + data + ')');  
$('#divContent').html(data);
提示我缺少'[',去下载查看Request Headers去,找了好久没有找到,不小心到没剑圣域

http://www.cnblogs.com/regedit/archive/2008/03/04/1089948.html

看了一堆无效,只是有一个地方让我的心顿了一下,因为我调试返回的json数据的格式是这样的

data

{...}

d:中华人民共和国,中华人民共和国,中华人民共和国;

 

里面也有一个d,呵呵,改为data.d试试,没有想到就成功了。

 

下面是成功的例子:

function SetContent(id,value){
               $('#divTitle').html(value);              
              $('#divContent').html("<img src='/help/style/loading2.gif' />");
                  $.ajax({
                    type: 'POST',
                    contentType: "application/json;utf-8", //WebService 会返回Json类型                        
                    url: '/common/Services/WSHelp.asmx/GetContent',                      
                     data:"{id:\""+id+"\"}",
                    dataType: 'json',
                    success: function(data) {

                       $('#divContent').html(data.d);
                    }
                });  
            }

 

其它几招,也许没有用,关键时候你还是可以试试

var json = eval('(' + msg + ')');

 

using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using Pay.SQLServer;
using System.Web.Script.Services;
using System.IO;

namespace Pay.common.Services
{
    /// <summary>
    /// Account 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class WSHelp : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        [ScriptMethod]
        public string GetContent(string id)
        {
            return Pay.Utility.HelperManage.Instance.Sel_admin_Question(id);
        }      
    }
}

 

    <httpHandlers>
      <remove path="*.asmx" verb="*"/>
      <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
      <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
      <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    </httpHandlers>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值