jQuery Ajax - json数据类型,发送多个参数?

时间:2014-04-09 12:04:21

标签: php ajax

我有ajax电话:

$.ajax({
    url: '/articles/moveArticle/' + article.id,
    type: 'POST',
    dataType: 'json',
    success: function(result) {
    console.log(result);
         //something
    },
    error: function (result) {
    }
});

ajax调用的php函数是:

function moveArticle ($articleId) {
  // move it
}

这很好但是如何发送多个参数?

3 个答案:

答案 0 :(得分:2)

您可以创建一个对象,然后使用JSON.stringify(data)

在ajax调用的data属性中传递它
var data ={
    id : article.id,
    name : article.name // other parameters
} 

$.ajax({
    url: '/articles/moveArticle',
    type: 'POST',
    dataType: 'json',
    data = JSON.stringify(data),
    success: function(result) {
    console.log(result);
         //something
    },
    error: function (result) {
    }
});

答案 1 :(得分:1)

在ajax调用中使用data参数。

https://api.jquery.com/jQuery.ajax/

修改

当我读到其他答案时,我决定加强我的答案。

jQuery文档中陈述的

dataType参数代表:

  

您期望从服务器返回的数据类型。

这意味着您期待来自服务器的JSON数据。如果将dataType设置为json,则并不意味着您要向服务器发送JSON对象。

您设置的ajax调用中有一个参数,它是type。此参数说明了如何将data发送到服务器。您使用了POST方法。这意味着PHP可以从data数组

访问$_POST中设置的任何内容
$.ajax({
    url: '/articles/moveArticle/' + article.id,
    type: 'POST',
    dataType: 'json',
    data: {
        something: 'Something that can be accessed by PHP as $_POST["something"]',
    },
    success: function(result) {
    console.log(result);
         //something
    },
    error: function (result) {
    }
});

答案 2 :(得分:1)

通过函数moveArticle,我猜你使用了一些php框架 不知道哪一个 - 不可能回答。
从函数的结构 - 我假设它使用路由 - 所以它不是一个POST请求(这就是为什么我忽略了data使用其他人提到的。)

所以,我最好的猜测是:

$.ajax({
    url: '/articles/moveArticle/' + article.id + '/' + anotherParameter,
    type: 'POST',
    dataType: 'json',
    success: function(result) {
    console.log(result);
         //something
    },
    error: function (result) {
    }
});


function moveArticle ($articleId, $theOtherParameter) {
  // move it
}