您能在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)提交所有信息的人,只要数据都是关于敏感的"脚本"信息,就像你所说的