【问题标题】:Response javascript ajax with an object parse fail使用对象解析失败的响应 javascript ajax
【发布时间】:2015-04-07 13:23:52
【问题描述】:

我哪里错了!?

Javascript 代码:

var url = "/SitePages/AlertsHandler.aspx/GetAlert";
$.ajax({
    type: "POST",
    url: url,
    data: '{alertId: \"' + alertId + '\"}',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        console.log(data.IncidentDesc);
    }
 });

C#代码:

[WebMethod]
    public static string GetAlert(string alertId)
    {
        return MyJsonObject; // on debug --> {"IncidentDesc":"assdafsdaf","IncidentRecommend":"asdfsdaf"}
    }

我在控制台上未定义...我在这里错过了什么?

更新,发现问题:

var data2 = JSON.parse(data.d);
console.log('IncidentDesc:' + data2.IncidentDesc);

【问题讨论】:

  • 内部双引号需要转义吗?
  • 基本上我用过:var MyJsonObject= new JavaScriptSerializer().Serialize(myobject);
  • 当你console.log(data)时会发生什么?
  • @Richard Macarthy 正如我最后所写,我得到“未定义”
  • 不,你写的是console.log(data.IncidentDesc)而不是console.log(data)

标签: javascript c# ajax


【解决方案1】:

try this

var url = "/SitePages/AlertsHandler.aspx/GetAlert";
var data={alertId: alertId};
$.ajax({
    type: "POST",
    url: url,
    data: JSON.stringify(data),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        console.log(data.IncidentDesc);
    }
 });

【讨论】:

    【解决方案2】:

    您可能需要解析 JSON 数据,因为它可能是响应字符串?

    var obj = JSON.parse(data);
    
    console.log(data.IncidentDesc);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      相关资源
      最近更新 更多