【问题标题】:How to catch POST requested data submitted to a javascript page?如何捕获提交到 javascript 页面的 POST 请求数据?
【发布时间】:2021-03-17 18:23:33
【问题描述】:

请求来自:
(这是远程未知来源,不在我的控制范围内)

xyz.php

<form action='https_:_//xyz.com/javascriptFile' method='POST'>
    <input type='text' name='data' />
</form>

到: (我的前端js文件)

javascriptFile.js

Need to catch the php POST request **data** here

【问题讨论】:

    标签: javascript reactjs graphql next.js


    【解决方案1】:

    简单的表单示例

    <form id="input_form" name"input_form" method="POST" onsubmit="return send();">
        <input type='text' name="first_name" value="John"/>
    </form>
    

    JS代码:

    <script>
    function send() {
    
        $.ajax
        ({
            type: 'POST',
            url: './path/your_php_file.php',
            data:$('#input_form').serialize(),
            success: function () {
               //on succeess
            },
            error: function (x, e) {
                // for error handling
            }
        });
        return false;
    }
    </<script>
    

    如果你想获取访问表单数据:

    <script>
         let get_first_name='<?php echo $_GET['url_param_name'];?>';
    </script>
    

    【讨论】:

    • 不,我无法将请求发布到 php 文件。该请求将来自远程 php 文件,我需要在本地 js 文件中捕获它。远程 php 会将请求发送到我的 js 文件,但 cqam 没有捕捉到它
    【解决方案2】:

    如果我没记错的话,你想从一个 php 文件中触发一个请求,并且你希望它被一个 JS 文件捕获?

    您在这里指的是,您需要一个用于处理 POST 请求的服务器端 JS 文件。您需要一个像 httpexpress 这样的 Web 框架,它可以在 Node.JS 服务器上运行并处理指向任何特定路由的 POST 请求。

    例如,如果您使用 express 创建 POST 路由:

    app.js

    const express = require('express')
    const app = express()
     
    app.post('/javascriptFile', function (req, res) {
      res.send('Hello World')
    })
     
    app.listen(3000)
    

    这将捕获所有来到localhost:3000/javascriptFile 的POST 请求,如果你在www.xyz.com 上部署这个服务器,那么你可以很好地向xyz.com/javascriptFile 发送POST 请求

    【讨论】:

    • 可以从前端抓到吗?
    • 不,不是,前端从来没有被创建来执行这个操作!这些 HTTP 路由应该隐藏在服务器(后端)中,服务器将相应地处理请求。在您的情况下,您有一个 xyz.php 文件,我认为这是将在客户端运行的代码。每当用户访问您的 php 文件时,都会加载此表单,并且客户端逻辑必须将这些表单详细信息发送到服务器。这是前端的唯一工作。您的后端现在将收到这些详细信息并执行您想做的任何事情,例如存储在数据库中或类似的东西中。
    • xyz.php 不在我手中。一个远程源(未知的 php 站点)向我的 url 提交一个表单(表示我的前端 javascript 文件),我需要获取该源提交给我的所有表单数据。
    • 在您的场景中,数据流应如下所示: PHP 通过 POST 请求向服务器提交数据 -> 您的服务器有一个 POST 路由,它将存储所有表单的数据提交 -> 您的前端 JS 文件应通过 GET 请求从服务器检索特定数据。我担心你不能跳过中间步骤
    • 是的,完全...现在怎么可能?
    猜你喜欢
    • 2011-09-10
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2023-01-25
    相关资源
    最近更新 更多