【问题标题】:Ajax submit post data to a get urlAjax 提交 post 数据到一个 get url
【发布时间】:2015-05-06 08:33:39
【问题描述】:

是否可以混合发布和获取 ajax?具体有一个表单 POST 数据到带有 get 变量的 url?

在 html 和 PHP 中,我通常会这样做:

<form action="script.php?foo=bar" method="POST">
    ...insert inputs and buttons here... 
</form>

PHP 脚本会根据逻辑/类来处理它。

我尝试了以下几种变体均无济于事:

$(document).ready(function() {
    $('#formSubmitButton').click(function() {
            var data = $('#valueToBePassed').val();
                $.ajax({
                    type: "POST",
                    //contentType: 'application/json',
                    url: "script.php?foo=bar",
                    data: data,
                    processData: false,
                    success: function(returnData) {
                        $('#content').html( returnData );
                    }
                });
            });
        });

这甚至可能吗?如果是这样,我做错了什么。我不觉得我在尝试重新发明轮子,因为它已经有可能并且经常被大量脚本使用(无论是否推荐)(当然它们是基于 php 的)。

【问题讨论】:

    标签: php jquery ajax post get


    【解决方案1】:

    请查看下面的 jsfiddle URL 和

    https://jsfiddle.net/cnhd4cjn/

      url: "script.php?data="+data, //to get it in the URL as query param
      data:"data="+data, // to get it in the payload data
    

    还要检查开发工具中的网络选项卡,以检查单击提交按钮时的 URL 模式

    【讨论】:

    • 最终它是所有答案的变体,但你所做的小提琴给了我关于如何解决我的错误所需的洞察力。我缺少的是 ajax 调用发生在初始 ajax 调用(加载表单的那个)之后,我需要将它包装在一个函数中并执行 onSubmit。
    【解决方案2】:

    我可以在您的代码中看到 1 个语法错误。

    使用

     data: {data:data},
    

    而不是

     data: data,
    

    然后尝试访问喜欢

    $_POST['data']; and $_GET['foo'];
    

    但我从未尝试过 POST 请求中的 GET 参数:),这只是一个建议。

    【讨论】:

      【解决方案3】:

      你可以,我就是这样做的。

      $(document).ready(function() {
          $('#formSubmitButton').click(function() {
              // My GET variable that I will be passing to my URL
              getVariable = $('#valueToBePassed').val();
              // Making an example object to use in my POST and putting it into a JSON string
              var obj = {
                  'testKey': 'someTestData'
              }
              postData = JSON.stringify(obj);
              // Jquery's AJAX shorthand POST function, I'm just concatenating the GET variable to the URL
              $.post('myurl.com?action=' + getVariable, postData, function(data) {
                  JSONparsedData = $.parseJSON(data);
                  nonparsedData = data;
              });
          });
      });
      

      【讨论】:

      • 当我使用它时(我认为这个稍微修改的版本会起作用,多个 get 变量)它调用了脚本,但是它把值作为一个 get 在浏览器中,所以现在 url script.php?valueId=value.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      相关资源
      最近更新 更多