在URL中使用GET参数的AJAX POST请求

时间:2015-12-22 23:56:45

标签: javascript php jquery ajax

你能在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变量来决定该选项,因为我不想混合与脚本相关的信息(POST数据)到实际"模式"该脚本应该运行。

如果这不起作用,是否会有任何类似的替代品不会涉及创建大量文件?

2 个答案:

答案 0 :(得分:2)

为什么不在执行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";
    }

?>

答案 1 :(得分:0)

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

$_SERVER['QUERY_STRING']

和在

parse_str()

-function获取GET查询并将其解析为数组以便于处理。

搜索&#39; ajax php&#39;或者考虑进一步使用框架 - 客户端(例如jquery甚至角度),php的服务器端可能是laravel,symfony或者......使用其他人开发和结构化的自动化。

但是:对于你所描述的情况,我会同意那些喜欢通过邮寄(SSL)提交所有信息的人,只要这些数据都是关于敏感的脚本&#39;信息,如你所说

相关问题