【发布时间】:2012-12-03 23:38:13
【问题描述】:
我试图传递的数组:
var params = [];
params['request'] = "movies";
params['param'] = [];
params['param']['sortBy'] = "title";
params['param']['sortOrder'] = "asc";
Ajax 调用:
return $.ajax({
type: "POST",
url: "http://192.168.0.100:83/getData.php",
cache:false,
data: params,
dataType:"json",
success: function(data){
if(data != null){
console.log(data);
}
问题是php脚本只接收$_POST['request'],params不存在。
如果我在 ajax 调用之前在控制台日志中查看 params 数组,我会看到:
[request: "movies", param: Array[0]]
length: 0
param: Array[0]
length: 0
sortBy: "title"
sortOrder: "asc"
__proto__: Array[0]
request: "movies"
__proto__: Array[0]
似乎问题可能是“param”参数没有被传递,因为它被视为空(它不是,至少在它被传递给 ajax 调用之前),但为什么会发生这种情况我不知道。我在这里错过了什么?
【问题讨论】:
-
尝试发送一个 json 对象而不是一个数组
-
@kennypu 会尽快尝试
-
@Toby Allen 你到底是什么意思?
-
@Toby 他没有在上面的任何地方混合 js 和 PHP。
-
你的
params实际上是一个对象{},而不是一个数组[](JavaScript数组不像PHP数组)。像这样声明它。var params = {};与params['param']相同。