URL中包含GET参数的AJAX POST请求


AJAX POST request with GET Parameters in URL

您能在AJAX POST请求中硬编码GET变量吗?

例如:

Javascript:

$.ajax({
    url:"/script.php?type=1"
    type: "POST"
    data:{...}
    success: function()
})
PHP:
$a = $_GET["type"]
$b = $_POST["some data"]

我为什么需要这个
我想要一个脚本,根据请求的函数运行多个小函数。(因为我不希望我的服务器被只用于一个小目的的文件堵塞)我决定使用URL GET Variable来决定这个选项,因为我不想将与脚本(POST数据)相关的信息与脚本应该运行的实际"模式"混合在一起。

如果这不起作用,是否有任何类似的替代方案不涉及创建文件负载?

为什么不在执行POST请求时只使用POST变量
让事情变得更容易的快速课程。。。

function ajax(type, data) {
    return $.ajax({
        url:"/script.php",
        type: "POST",
        data: $.extend(data, {type : type})
    });
}
ajax('db', {key : "value"}).done(function(data) { 
    if ( data === 'success' ) alert('insert happened!');
});
ajax('users', {user : "Bob"}).done(function(userData) {
    alert(userData);
});

和在PHP 中

<?php
    switch( $_POST['type'] ) {
        case "db" : 
            mysqli_query($sb, 'INSERT ' . $_POST['key'] . 'INTO SOMETHING');
            echo "success";
        break;
        case "user" : 
           echo get_user_data($_POST['user']);
        break;
        default : echo "These aren't the droids you're looking for";
    }
?>

正如评论中所说,您可以使用php

$_SERVER['QUERY_STRING']

以及例如

parse_str()

-函数来获取get查询并将其解析为数组以便于处理。

搜索"ajax php",或者考虑进一步使用一个框架来实现这一点——客户端(例如jquery,甚至angular),服务器端的php可能是laravel、symfony等等,以使用其他人开发和构建的自动化。

但是:对于你描述的情况,我同意那些喜欢通过post(SSL)提交所有信息的人,只要数据都是关于敏感的"脚本"信息,就像你所说的