当前位置: 首页 > 知识库问答 >
问题:

从web服务返回的JSON数据显示未定义

董康平
2023-03-14

我通过jQuery ajax调用一个Web服务。在浏览器中检查时,从服务返回的响应似乎很好,如下所示:

<string xmlns="http://tempuri.org/">
{"Table":[{"stgr_grn_no":"H1B1G00679","stgr_slno":1174.0}]}
</string>

当我通过jQueryAjax调用得到相同的结果时,它显示为未定义

 var param = {GRNNumber: GRNNumber};              
         $.ajax({
                type: "GET",
                datatype: "json",
                url: url,       
                data: param,    
                beforeSend: function (XMLHttpRequest) {
                        XMLHttpRequest.setRequestHeader("Accept", "application/json");
                },
                success: (function (data, textStatus, jqxhr) {
                     var cont = data.Table; 
                     alert(cont);
                     for (var i in cont) 
                     {
                         alert(cont[i].stgr_grn_no);

                     }      

                }),

                error: (function(request, status){
                var err = status + ", " + JSON.stringify(request) + "ERROR:";   
                alert(err);
            })


          }); 

此处“数据”显示为对象文档,
“cont”显示为未定义
当我试图提醒“jqxhr”参数时,它显示了来自web服务的所有数据,并且状态为OK。我在大多数帖子和博客上都试过了,但都找不到哪里出了问题。请帮忙。

共有2个答案

壤驷阳波
2023-03-14

试试这个:

var cont = data.Table;    
alert(cont);

JSON对象中没有st_grn

提示:更改为Firefox(或相等的调试系统)的console.log(data)和Firebug以深入挖掘对象。使调试容易得多。

左康安
2023-03-14

这个:

<string xmlns="http://tempuri.org/">
{"Table":[{"stgr_grn_no":"H1B1G00679","stgr_slno":1174.0}]}
</string>

...不是JSON。它是XML,用一些JSON代替它。

作为传递go数据的方法,这是疯狂的。您应该修复web服务,使其只返回JSON,或者以纯XML而不是XML和JSON的混合形式表示数据。

如果不能这样做,那么必须首先将Ajax响应解析为XML,从中提取JSON(类似于rootElement.firstChild.data),然后将其解析为JSON。

 类似资料:
  • 问题内容: 早上, 我需要从Web服务返回一条消息。以下是我的代码示例,我正在返回一个字符串。 我目前收到以下回应… 我理想上想返回类似 我敢肯定,一旦我有了主意,就可以在需要时退还其他物品。这只是我需要解决的基础。 非常感谢所有帮助,在此先感谢:) 更新:刚发现这个… 我需要类似的东西吗 问题答案: 用: 返回的结果将类似于:

  • 问题内容: 我正在使用.Net framework 2.0 / jQuery对2.0 Web服务进行Ajax调用。无论我在ajax调用中将contentType设置为什么,该服务始终返回XML。我希望它返回Json! 这里是电话: 这是Fiddler中请求标头的样子: 我尝试将contentType设置为’text / json’并获得相同的结果。 这是Web服务方法: 这是它返回的内容: 有人知

  • 问题内容: 在这种情况下,我不得不学习新技术并运行新技术而又没有时间学习基础! 我有以下js函数调用PrintService,该函数向我返回要注入div的HTML: 在另一个例子中我注意到“ .d”之前,我为此苦苦挣扎 因此,它可以工作-但是为什么呢?这是什么“ .d”? 抱歉,如果这是一个菜鸟问题,但google不是我的朋友。 谢谢 编辑:Magnar是正确的,它是.NET特定的东西。 在此处查

  • 问题内容: 我有一个用于Web应用程序的ASP.net Web服务,该服务根据我调用的函数向我返回XML或JSON数据。到目前为止,这一直很好,但是我遇到了一个问题。我想在我的页面上创建一个“导出”链接,该链接将下载一个JSON文件。链接的格式非常简单: 您可能会想到,这应该导出项目2。到目前为止,很好,是吗? 问题是,由于我没有特别要求接受的内容类型是JSON,因此ASP.net绝对拒绝发回除X

  • 问题内容: 在这里,我有一个简单的PHP脚本,它以json格式显示数据库中的一些值。 这显示很好,这是一个输出示例: 然后,当单击图像时,将调用此jquery: 但是,(标题,日期和时间)变量在警报框中显示为“未定义”。我尝试了多种方式来实现ajax调用,并且每次都发生相同的事情。这是我第一次尝试它,但是我不知道。 问题答案: 您的json字符串具有数组格式。您需要像这样访问json对象的属性 如

  • 问题内容: 我尝试使用Express返回一些二进制数据。在示例中,它是PDF,但从理论上讲,它可以是任何类型的文件。 但是暂时将重点放在pdf上。我写了这段代码: 基于我在这里看到的内容:https : //github.com/strongloop/express/issues/1555 但是,我得到的PDF文件具有正确的页数,正确的标题…。但是所有页面都是空白 我肯定会担心getBinaryD