我的json文件如下所示:
count_click.json
[
{
"link": "google.com",
"count": 2
},
{
"link": "yahoo.com",
"count": 3
}
]
现在我使用
打开此文件$.getJSON('count_click.json',function(data){
// do something with data
var stringData = JSON.stringify(data);
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: 'http://127.0.0.x:3xx9/update.php',
data: {stringData: stringData},
success : function(d){
alert('done');}
})
}) // end of getJSON function
update.php
<?php
$a = file_get_contents("php://input");
file_put_contents('http://127.0.0.x:3xx9/count_click.json', json_encode($a));
?>
我在浏览器控制台中收到错误:
POST http://127.0.0.x:3xx9/update.php 404 (Not Found)
但文件在那里。当我在浏览器中找到这个http://127.0.0.x:3xx9/update.php时,我看到php的内容很好。
答案 0 :(得分:0)
一些问题。
file_get_contents("php://input");
为什么?您已经发送了包含数据的帖子,无需使用流来复杂化。
同样file_put_contents
需要磁盘上实际文件的路径,而不是URL!
data: {stringData: stringData}
表示您可以使用$data = $_POST['stringData'];
在您的服务器上访问它。
简单回应一下,看看你是否真的得到了什么。
echo json_encode( array("Payload" => $_POST['stringData']) );
如果这不起作用,请尝试使用浏览器访问端点(不是文件,因为浏览器不需要PHP才能读取它)。
将浏览器指向http://127.0.0.x:3xx9/update.php
并在服务器上,只需
echo "Request received!";
如果您在浏览器中看到该端点正在运行,则可以继续进行故障排除。如果不这样做,那么这超出了JS和PHP,可能与您的服务器设置有关。如果您使用的是RStudio's Shiny Server,那么这对PHP不起作用
在任何情况下,您的端点都应该在调用时返回一些内容。不只是保存文件。这只是一种很好的做法。
header("HTTP/1.1 200 OK");