无法从PHP CURL访问NodeJS REST API

无法从PHP CURL访问NodeJS REST API,php,node.js,codeigniter,curl,nginx,Php,Node.js,Codeigniter,Curl,Nginx,我有一个nodejsapi来发送推送通知(GCM和APN),它工作得很顺利 现在我有了一个内置的管理面板PHP Codeigniter,我想使用它调用推送API。代码是这样的 <?php $url = "http://my_ip:9100/service/api/push"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFE

我有一个nodejsapi来发送推送通知(GCM和APN),它工作得很顺利

现在我有了一个内置的管理面板PHP Codeigniter,我想使用它调用推送API。代码是这样的

<?php 
 $url = "http://my_ip:9100/service/api/push";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);       
    curl_setopt($ch, CURLOPT_HEADER, 0);

    if(curl_exec($ch) === false)
    {
        echo 'Curl error: ' . curl_error($ch);
    }

    curl_close($ch); 
?>

但它无法连接,并且输出不稳定

无法连接到my_ip:权限被拒绝

我已经测试了来自的Push API,它工作得很顺利。如果我在浏览器中尝试,至少它会进入API方法

PHP项目和NodeJS应用程序都在同一个服务器(NGINX)中,我尝试用“localhost”代替IP地址,但没有用

我错过了什么

  • 在cURL中调用请求时需要添加的任何内容(尝试了cURL_setopt()的多种组合)
  • 阻止cURL请求的任何服务器设置

提前感谢。

您还不允许您的express服务器使用COR。这应该只是拒绝连接的原因。有关从express server允许COR的信息,请参见此

在所有GET和POST请求之前,我已经添加了这一点,但如果我从邮递员或浏览器控制台发出的请求被打印出来,而不是从cURL应用程序发出,那么仍然可以使用(function(req,res,next){console.log('Access-Control-Allow-Origin');res.header(“Access-Control-Allow-Origin”,“*”);res.header(“Access-Control-Allow-Headers”),“Origin,X-Requested-With,Content-Type,Accept”);next();});github中有详细说明。请阅读。您的curl请求可能有问题,例如发送标题或内容类型。如果您有任何解决方案,请与他人分享。谢谢。