你能在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数据)到实际"模式"该脚本应该运行。
如果这不起作用,是否会有任何类似的替代品不会涉及创建大量文件?
答案 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;信息,如你所说