你好,我正试图从我的网站与curl (php)连接到一个rest api(节点js-express-js)我已经做了。除了curl的答案为空
之外,Everythink似乎工作得很好server from node-js:
var express = require('express'); // call express
var app = express(); // define our app using express
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080; // set our port
// ROUTES FOR OUR API
// =============================================================================
var router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});
app.use('/api', router);
app.listen(port);
console.log('Listening on ' + port);
在我的网站上,我试图通过使用curl检索json:
<?php
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, "xxx:8080/api/"); // i removed the ip from my server for safety reasons
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $output contains the output string
$output = curl_exec($ch);
print "output=";
print_r($ouput);
// close curl resource to free up system resources
curl_close($ch);
?>
注意:发送一个get请求上面从邮差我收到我想要的答案。我不知道怎么了。提前谢谢。
而且,curl是一个阻塞函数。对吧?
两个"服务器"在同一台服务器上。我不知道是不是javascript的跨服务器源错误
为什么你没有通过PHP得到响应- print_r func中错误的var名称
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "xxx:8080/api/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
print "output=";
print_r($output); // missed t in output
curl_close($ch);
?>