Javascript URL中带有GET参数的AJAX POST请求
您可以通过硬代码在AJAX POST请求中获取变量吗 例如: Javascript:Javascript URL中带有GET参数的AJAX POST请求,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,您可以通过硬代码在AJAX POST请求中获取变量吗 例如: Javascript: $.ajax({ url:"/script.php?type=1" type: "POST" data:{...} success: function() }) PHP: $a = $_GET["type"] $b = $_POST["some data"] 我为什么需要这个? 我想有一个脚本,可以根据请求运行多个微小的函数。(因为我不希望我的服务器被仅用于一个微小用途的文
$.ajax({
url:"/script.php?type=1"
type: "POST"
data:{...}
success: function()
})
PHP:
$a = $_GET["type"]
$b = $_POST["some data"]
我为什么需要这个?我想有一个脚本,可以根据请求运行多个微小的函数。(因为我不希望我的服务器被仅用于一个微小用途的文件阻塞)我决定使用URL GET变量来决定该选项,因为我不想将与脚本(POST数据)相关的信息与脚本应该运行的实际“模式”混在一起。
如果这不起作用,有没有类似的替代方案不涉及创建文件加载?如评论中所述,您可以使用php
$_SERVER['QUERY_STRING']
以及例如
parse_str()
-函数获取get查询并将其解析为数组以便于处理
搜索“ajax php”或考虑进一步为此使用框架-客户端(例如jquery或angular),服务器端的php可能是laravel、symfony或其他人开发和构建的自动化
但是:对于您描述的情况,我同意那些喜欢通过post(SSL)提交所有信息的人,只要这些数据都是关于敏感的“脚本”信息,正如您所说的,为什么不在执行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";
}
?>
嗯,你试过了吗,应该很容易测试是的,你可以。HTTP请求将调用该函数,PHP可以同时使用GET和POST变量。另一方面,为什么不能使用POST变量来确定要运行的函数呢?正如Twisty所说,是的,您可以。您可以混合使用$\u POST
和$\u GET
来访问它们,或者更简单地使用$\u REQUEST
@谢谢。我无法尝试,因为我的服务器现在已关闭。