在JQuery请求

时间:2018-01-18 22:46:20

标签: php jquery ajax post

我正在尝试向我的 PHP控制器(控制器和功能名称)发送额外信息,我正在使用url来执行此操作。

$.ajax({
    url: "./app/Request.php?"+serializedData+"@Controller_name/function_name",
    type: "post"
});

但我意识到这不是最好的方法,所以我开始通过数据发送它

$.ajax({
    url: "./app/Request.php",
    type: "post",
    data: serializedData+"@Controller_alta/newTicket"
});

在我的PHP请求中,我曾经获取我的查询字符串,并将post参数url与Controller和函数名称分开

$url = $_SERVER['QUERY_STRING'];

但是现在我从URL QueryString

中得不到任何东西

我怎样才能完成这项工作?

1 个答案:

答案 0 :(得分:0)

Ajax请求的data参数与查询字符串不同。

我假设您正在尝试实施您自己的路由形式(假设您没有使用任何类型的MVC框架。),这很好我不会&# 39;认为这与手头的问题非常相关。

尝试从php代码中获取请求中的数据,如下所示:

$ajaxData = $_POST['data'] or $_REQUEST['data'];
var_dump($ajaxData);

由于Ajax被指定为POST请求。第一个应该可以正常工作。

如果这不起作用,您是否可以编辑问题以准确显示serializedData变量是什么?如果你通过ajax发送的数据是一个数组,我建议你做这样的事情。

  $.ajax({
    url: "./app/Request.php",
    type: "post",
    data: {
      controller: controllerName,
      action: controllerAction,
      data1: data1,
      data2: data2
    }
});

我相信jQuery将发布数据序列化为可接受的字符串以便为您发布,因此您不必自行序列化。

您也应该阅读ajax。 jQuery有很好的文档记录。