$.ajax({
url: 'test.php',
type: 'GET',
dataType: 'json',
data: "last_name=SMITH&first_name=JOHN&middle_name=J",
contentType: "application/json; charset=utf-8",
success: function(response) {
var len = response.length;
for (var i = 0; i < len; i++) {
var name = response[i].LASTNAME + ", " + response[i].FIRSTNAME + " " + response[i].MIDDLE
var sysid = response[i].ORDERID
$("<li></li>")
.html("<a href='result.php?orderid=" + orderid + "'>" + name + "</a>")
.insertAfter($("#questions-divider"));
$("#questions").listview("refresh");
}
}
});
});
这适用于GET。我用帖子试了一下,但失败了。我的php页面中有_POST。我将数据参数更改为:
data: '{ "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" }',
但这也失败了(有了get和post)。我的php页面返回它在我的有效负载中找不到last_name。 $_POST['last_name']
永远不会在我的php页面中获取数据。使用GET发送它并且它可以工作(我将我的php更改为使用$_GET
进行测试然后返回$_POST
)。
编辑:我试过了,但没有帮助:Cant get jQuery ajax POST to work
编辑:还:jquery $.post empty array
编辑:我能够得到这样的结果。不知道格式化数据失败的原因:
//data: '{ "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" }',
data: "last_name=SMITH&first_name=JOHN&middle_name=J",
//contentType: "application/json; charset=utf-8",
contentType: "application/x-www-form-urlencoded",
答案 0 :(得分:3)
删除引号以使数据的值成为对象。应该阅读:
data: { "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" },
答案 1 :(得分:3)
这是我一直使用的简单的$ .ajax模板。它适用于一切。您的数据值应该是一个对象。
$.ajax({
type: "POST",
url: "ajax.php", // Your URL
//data: "action=whatever&user=" + username, // You can do it like this.
data: {name: data, action: "whatever"}, // Or like this, Notice the Quotes
dataType: "html", // The Return Type of the data
success: function(xhr){ // Success! :)
alert("success, ajax post was success");
},
error: function (xhr, ajaxOptions, thrownError){ // Your a failure :(
alert(xhr.status);
alert(thrownError);
}
});
您当前将字符串传递给数据,它需要是一个对象:
<强>此致:强>
data: '{ "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" }',
应
data: { "last_name": "SMITH", "first_name": "JOHN", "middle_name": "J" },