从 php 脚本获取响应时出错

Posted

技术标签:

【中文标题】从 php 脚本获取响应时出错【英文标题】:error while getting response from php script 【发布时间】:2011-05-31 03:31:46 【问题描述】:

我在 node.js 中有以下代码

console.log("Sending request "+sys.inspect(request));
       var request=Yapi.request('get',config.path+'/index.php?
command='+request.command+'&'+querystring.stringify(request),config);
       request.end();
       var body=''
       request.on('response',function(response) 
               response.on('data',function(chunk) body += chunk;);
               response.on('end',function() 
                       var rdata=JSON.parse(body);
                       if (typeof(rdata) != 'object') 
                               return proceed(false,errno:'002',message:'Cannot parse yapi
response ('+response.responseCode+')');
                       
                       proceed(true,rdata);
               );
       );

出现这个错误

Logging in  sessionId: '9165703144390136',
 command: 'login',
 username: 'rahul',
 password: '12345' 
sessionId=9165703144390136&command=login&username=rahul&password=12345
Sending request  sessionId: '9165703144390136',
 command: 'login',
 username: 'rahul',
 password: '12345' 

undefined:5
d":"1","id_session":"ecvgvc36d17qran917pml3t681","systemgibid":"54"
<script la
                                                                   ^^
SyntaxError: Unexpected token ILLEGAL
   at Object.parse (native)
   at IncomingMessage.<anonymous> (/home/ubuntu/nodes/youngib/lib/
yapi.js:103:19)
   at IncomingMessage.emit (events.js:41:20)
   at HTTPParser.onMessageComplete (http.js:112:23)
   at Client.onData [as ondata] (http.js:889:27)
   at Client._onReadable (net.js:762:27)
   at IOWatcher.onReadable [as callback] (net.js:276:10)
   at node.js:616:9

请提出问题所在。

【问题讨论】:

【参考方案1】:

非法标记意味着 javascript 属性正在使用它不应该使用的字符,例如:

my-var = 1;

【讨论】:

【参考方案2】:

您在变量值的中间有换行符,并且您错过了一些分号。 尝试使用这样的代码:

console.log("Sending request "+sys.inspect(request));

var request = Yapi.request('get', config.path + '/index.php?command=' + request.command + '&' + querystring.stringify(request), config);
request.end();
var body='';
request.on('response', function(response) 
    response.on('data', function(chunk)  body += chunk; );
    response.on('end',function() 
        var rdata = JSON.parse(body);
        if (typeof(rdata) != 'object') 
            return proceed(false,  errno:'002', message: 'Cannot parse yapi response (' + response.responseCode + ')' );
        
        proceed(true,rdata);
    );
);

【讨论】:

【参考方案3】:

api调用有问题,是returnig脚本标签

undefined:5
d":"1","id_session":"ecvgvc36d17qran917pml3t681","systemgibid":"54"
<script la

【讨论】:

以上是关于从 php 脚本获取响应时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jetty 9 从 HttpClient 获取响应时出错

从 PHP 脚本接收“json_encode”时 Swift JSON 出错。没有它也能正常工作

Linux 上的 NuGet:获取响应流时出错

使用 PHP 从 URL 获取值并将其发送到 javascript 变量时出错

SOAP UI:获取响应时出错;尝试连接到 Microsoft SQL Server 时为 null

jquery select2:从 php-mysql 获取数据时出错