Ajax使用字符串名称发送数据

时间:2017-03-20 10:26:55

标签: php ajax post send

如果已经回答,我道歉,但我还没有找到70k +结果的答案..

我想发送这样的数据:

function _post(params) {

    var func = params['func']; // -> 'getUserDetails'

    $.ajax({
              url: "crossroad.php",
              type: "post",
              data: { func : params },
              cash: false,
              complete: function(respond){
                console.log(respond);
              }
          });
}

m = {};
m['func'] = 'getUserDetails';
m['id'] = '123456';
_post(m);

但是使用这段代码,php得到了

$_POST['func']

我希望我发送的字符串被命名为params [' func']并且在这种情况下我想在php中接收

$_POST['getUserDetails']

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

您需要创建对象

var requestParams = {};

然后像

一样设置它的属性
requestParams[params['func']] = '';// your data to send
//or
requestParams[params['func']] = params['id'];// your data to send

然后输入ajax数据属性

 data: requestParams,

答案 1 :(得分:1)

这里的问题是func是一个有效的密钥标识符,所以虽然您希望func替换您传入的参数,但实际上您声明了一个名为您的数据对象的属性func

要解决此问题,请创建一个新对象,然后将其传递给:

function _post(params) {

var func = params['func']; // -> 'getUserDetails'
var obj = {};
obj[func] = params;

$.ajax({
          url: "crossroad.php",
          type: "post",
          data: obj,
          cash: false,
          complete: function(respond){
            console.log(respond);
          }
      });
}

答案 2 :(得分:0)



{{1}}