2012-11-21 232 views
0

我创建了一行代码,用于从SOAP服务读取数据。但我有一个小问题。我在这个任务中使用JSONP Lib,但没有产生结果。我使用较少的代码尝试读取数据库查询的输出,结果是成功的。这两种方法有区别吗?我提出的PHP代码的第一个到所述阵列转移到JSON的形式:阅读JSON格式

<?php 
error_reporting(0); 
header('content-type:application/json;charset=UTF-8'); 
date_default_timezone_set("Asia/Jakarta"); 
require_once('lib/nusoap.php'); 

$Param1 = "[email protected]"; 
$Param2 = "12345"; 

$client = new nusoap_client('http://vcare.telkomvision.net.id/services/VcareServices.php'); 
$ReadSOAP = $client->call('validateLogin', array('EMAIL' => $Param1, 'PASSWORD' => md5($Param2))); 

echo '{"items":['. json_encode($ReadSOAP) .']}'; 
?> 

和上述代码中产生的数据是:

{ 
"items": [ 
    { 
     "NE": "42616324457", 
     "EMAIL": "[email protected]", 
     "TIPE": "POSTPAID", 
     "NAMA": "ALBERTHO MALAQUENA JORIS/NPK:120488047", 
     "TELP": "081310117966/087878837451", 
     "DN": "127225148174", 
     "STATUS_LOGIN": "1", 
     "DESC_LOGIN": "Valid" 
     } 
    ] 
} 

我使用下面到库稍后处理在我的应用程序要读取的输出数据: JSONP Library

JSONP.get('MyURL.php', {Email:'MyEmail', Password:'MyPass'}, function(data){ 
    for (var i = 0; i < response.length; ++i) { 
      str = response[i].ne; 
      str2 = response[i].email; 
      str3 = response[i].tipe; 
      str4 = response[i].nama; 
      str5 = response[i].telp; 
      str6 = response[i].dn; 
      str7 = response[i].desc_login; 
    } 
}); 

但结果我得到的是:我的应用A n无法直接从SOAP上面读取数据输出。我很困惑为什么会这样。我认为JSON格式是正确的。

然后我试着直接从数据库中读取数据。这个数据库是一个示例,我意外地用上面的SOAP读取过程的输出来创建相同的数据。

结果,我成功获取数据。

我包括两个链接,我用来做阅读。

  1. 此链接是PHP文件,直接从服务器处理SOAP和输出JSON: Failed to Reading

  2. 这是直接链接到数据库与虚拟数据库。 JSON输出。我成功使用第二种方法: Success to Reading

请帮我解决我的问题了。我想直接从使用输出JSON的SOAP表单的流程中读取数据。正如我所说的失败。

谢谢

+0

(i)您应该迭代'data.items'(II)JavaScript和JSON是区分大小写的。 'foo.ne'和'foo.NE'不一样。 –

+0

我改变了,等于 –

+0

等一下帮助.. :( –

回答

0

试试这个:

JSONP.get('MyURL.php', {Email:'MyEmail', Password:'MyPass'}, function(data){ 
    for (var i = 0; i < response.length; i++) 
    { 
     str = response[i].NE; 
     str2 = response[i].EMAIL; 
     str3 = response[i].TIPE; 
     str4 = response[i].NAMA; 
     str5 = response[i].TELP; 
     str6 = response[i].DN; 
     str7 = response[i].DESC_LOGIN; 
    } 
});