Ajax 提交 post 数据以获取 url

Ajax submit post data to a get url

是否可以混合post并进入ajax?具体来说,有一个表单 POST 数据到一个 url with get variables?

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

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

PHP 脚本会根据 logic/classes 处理它。

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

$(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)。

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

$(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 个语法错误。

使用

 data: {data:data},

而不是

 data: data,

然后像

一样尝试访问
$_POST['data']; and $_GET['foo'];

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

请查看下面的 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 模式