![](/img/trans.png)
[英]when i use ajax post json to web server(Nodejs), but the web server can't receive the data from client
[英]Can I use AJAX 'POST' to post data to a JSON file on my server?
我只想用最简单/最简单的方法从用户在我的服务器上输入的数据“POST”从AJAX表单中获取数据。
因此,如果用户在页面上的输入表单中留下他们的名字,那么AJAX POST将数据发送到我服务器上的JSON文件。
这可能吗? 这是获取输入数据的最快方法吗?
提前致谢!
*有人可以告诉我为什么这会被贬低? 我违反了任何条款吗? 我想在将来知道。 谢谢。 :/
Ajax文件直接无法写入服务器中的文件。 但是你可以通过在你的服务器上创建简单的php脚本说savejson.php
来实现这一点。
你的表格:
<form>
<input type="text" id="name" name="name">
<button type="submit" id="submit-btn">
</form>
<script>
$('#submit-btn').on('click', function(e) {
e.preventDefault();
if( $('#name').val() ){
$.ajax({
url : 'savejson.php',
method : 'post',
data : { 'name': $('#name').val() },
success : function( response ) {
alert( response );
}
});
}
});
</script>
你的savejson.php:
<?php
$fp = fopen('names.json', 'w');
fwrite($fp, json_encode($_POST['name']));
fclose($fp);
?>
Ajax是一个或多或少只是意味着“从JavaScript发出HTTP请求”的术语。
您可以使用它来发出POST请求。 您可以使用它来使该请求的主体成为JSON文本 。
您不能POST到文件 ,只能到URL。 您需要服务器端代码来负责获取请求中的数据并将其写入文件。
是。 这是一个相当常见的问题,您也可以查看以下问题:
实质上,您使用客户端语言(Javascript)向后端发送POST请求。 当然,您将需要后端语言(例如PHP或node.js)。
我举一个例子:
JS(jQuery):
$.post("http://yourURL.com/backend.php",{
data: {
"name" :"John Smith",
"vehicle":"TARDIS"
}
}).success(function(response){
console.log(response)
//do something with the response
});
PHP
<?php
$data = json_decode($_POST['data'], true);
$name = $data['name'];
$vehicle = $data['vehicle'];
echo "Welcome {$vehicle}-driving $name!";
?>
你的PHP尤其应该包括错误检查等等,但这对于一个简单的例子就足够了。
在您的控制台中,执行AJAX请求后,您将看到以下内容:
Welcome TARDIS-driving Doctor!
哪个是PHP文件的输出
很抱歉在这里跳得很晚。
var name = $('#name').val();
$.ajax({
url : 'somefile.php',
method : 'post',
data : { 'name': name },
success : function( response ) {
console.log( response );
}
});
这样就可以了。
您无法单独使用JavaScript写入任何文件。 只是cookie或本地(或会话)存储。
AJAX POST将数据发送到服务器。 数据采用JSON格式。 你已经理解了这一部分。
在服务器上,需要有一个API来使用此JSON并将其写入文件,或者更好地将其存储在数据库中。
更多问题:
可以直接写入文件吗? 没有
API可以写入文件吗? 是的,技术上可行,但不可取
其他人如何做到这一点? 他们接受JSON响应并将其写入服务器端代码中的数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.