我正在尝试将一些json数据从js发送到php,并通过REST将其传递给mongo。
以下输出json字符串(如果我只是将它作为字符串放在PHP文件中,以后工作正常,请参阅下面的代码段。)
JS发送json:
var s = JSON.stringify(send); //s contains previous data in arrays, etc
ic(s);
function ic(s){
var ajaxUrl = './iM.php';
$.getJSON(ajaxUrl,
{da: s},
function(data) {
console.log (data);
});
}
在iM.php中:
$s = $_GET["da"]; //
//$s = '{"r":"pax","c":1,"w":["kiwi","melon"],"g":["cat","dog"]}'; //
$opts = array(
"http" => array(
"method" => "POST",
"header" => "Content-type: application/json",
"content" => $s,
),
);
$context = stream_context_create($opts);
$result = file_get_contents("https://api.mongolab.com/api/1/databases/$db/collections/$collection?apiKey=$key", false, $context);
var_dump($result); // Dumps the response document
在firefox调试器中,我可以看到文件实际被调用,但是没有添加数据。
创建了error_log文件:
无法打开流:HTTP请求失败! HTTP / 1.1 400错误请求
我也在php中试过urlencode($ s),仍然无法正常工作。
$ db,$ collection和$ key在php中是不确定的,没问题。
我错过了什么?