Ajax将发布数据提交到获取URL

时间:2015-03-05 04:22:17

标签: php jquery ajax post get

是否可以混合帖子并进入ajax?具体来说,使用get变量将表单POST数据发送到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)。

3 个答案:

答案 0 :(得分:1)

你可以,这就是我的工作。

$(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;
        });
    });
});

答案 1 :(得分:1)

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

使用

 data: {data:data},

而不是

 data: data,

然后尝试访问

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

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

答案 2 :(得分:1)

请查看以下jsfiddle网址和

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模式