我可以使用 AJAX 'POST' 将数据发布到我服务器上的 JSON 文件吗?

Posted

技术标签:

【中文标题】我可以使用 AJAX \'POST\' 将数据发布到我服务器上的 JSON 文件吗?【英文标题】:Can I use AJAX 'POST' to post data to a JSON file on my server?我可以使用 AJAX 'POST' 将数据发布到我服务器上的 JSON 文件吗? 【发布时间】:2015-07-28 21:22:20 【问题描述】:

我只想要最简单/最简单的方法来使用“POST”用户在我的服务器上输入的数据从 AJAX 表单中获取我的数据。

因此,如果用户在页面上的输入表单中留下他们的姓名,那么 AJAX POST 会将数据发送到我服务器上的 JSON 文件中。

这可能吗?这是获取输入数据的最快方法吗?

提前致谢!

*有人能告诉我为什么这被否决了吗?我违反了任何条款吗?我只是想知道将来。谢谢。 :/

【问题讨论】:

JSON 只是一个文本文件,你需要使用服务器端的编程语言接收 AJAX 发送的数据并将其存储在一个文件中。 【参考方案1】:

Ajax 文件不能直接写入服务器中的文件。但是您可以通过在您的服务器上创建 simple 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);
?>

【讨论】:

Polymer 可以与 PHP 一起正常工作吗? - 对不起,如果菜鸟问题。【参考方案2】:

Ajax 这个术语或多或少只是意味着“从 javascript 发出 HTTP 请求”。

您可以使用它来发出 POST 请求。你可以用它来制作body of that request a JSON text。

您不能发布到 文件,只能发布到 URL。您将需要负责获取请求中的数据并将其写入文件的服务器端代码。

【讨论】:

【参考方案3】:

是的。这是一个相当常见的问题,您最好也看看以下问题:

How can I use JQuery to post JSON data?

Jquery Ajax Posting json to webservice

本质上,您使用客户端语言 (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 文件的输出是什么

【讨论】:

【参考方案4】:

抱歉来晚了。

var name = $('#name').val();
   $.ajax(
        url     : 'somefile.php',
        method  : 'post',
        data    :  'name': name ,
        success : function( response ) 
            console.log( response );
        
    );

这样就可以了。

【讨论】:

【参考方案5】:

您不能单独使用 JavaScript 写入任何文件。只是 cookie 或本地(或会话)存储。

【讨论】:

【参考方案6】:

AJAX POST 向服务器发送数据。数据为 JSON 格式。这部分你已经明白了。

在服务器上,需要有一个 API 来使用此 JSON 并将其写入文件,或者更好地将其存储在数据库中。

更多问题: 它可以直接写入文件吗?没有 API可以写入文件吗?是的,它在技术上是可行的,但不可取 其他人是如何做到的?他们接受 JSON 响应并将其写入服务器端代码中的数据库。

【讨论】:

以上是关于我可以使用 AJAX 'POST' 将数据发布到我服务器上的 JSON 文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

当我将 var 从 ajax 发送到 php 时,如果 (isset $_Post[]) 不起作用

在 Django 视图中调用“request.POST”时,Ajax POST 不发送数据

在 Django 中的 AJAX POST 请求后重新加载模板

使用 jQuery ajax post 接收 PHP 参数

CouchdB Jquery Ajax POST CORS

405 Ajax POST 错误