无法从PHP CURL访问NodeJS REST API
我有一个nodejsapi来发送推送通知(GCM和APN),它工作得很顺利 现在我有了一个内置的管理面板PHP Codeigniter,我想使用它调用推送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
<?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请求可能有问题,例如发送标题或内容类型。如果您有任何解决方案,请与他人分享。谢谢。