我无法使用 jQuery 1.9.1 从 AJAX 检索服务器端的数据。
这是我的服务器端金字塔代码:
@view_config(route_name='ajax_contact_handler', renderer='json')
def ajax_contact_handler(request):
contact_id = request.POST.get('contact_id', None)
# Use contact_id to perform some DB operations
return dict(cid=contact_id)
这是我的 jQuery 代码:
$(document).ready(function() {
$("#connect_button").click(function() {
var user_id = 3; // Just for the example
$.ajax({
type: "POST",
url: "/ajax_contact/",
dataType: "json",
data: {"contact_id": user_id},
cache: false,
success: function(result) {
$('#connect_button').html("Contact Added").css("background-color","rgb(151,151,151)");
$('#connect_button').unbind('click');
}
});
});
});
在服务器上,我没有得到contact_id
,因此它被设置为 default None
。
我做错了什么?以及如何获取contact_id
要在服务器代码中使用的参数?此外,我是否需要xhr=True
在我的view_config
装饰器中拥有 - 当它存在时,我手动导航到ajax_contact
我收到 404 的页面(这是预期的结果)?
谢谢你的帮助。
编辑 更多信息:
Request URL:http://localhost:8080/ajax_contact/
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:16
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:pdtb=hide; auth_tkt="52932923705e421fe29f3fec53ed7408523e1f3f1!userid_type:int"
Host:localhost:8080
Origin:http://localhost:8080
Referer:http://localhost:8080/user/jz/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36
X-Requested-With:XMLHttpRequest
Form Dataview sourceview URL encoded
{"contact_id":4}:
Response Headersview source
Content-Length:13
Content-Type:application/json; charset=UTF-8
Date:Sat, 21 Sep 2013 22:40:49 GMT
Server:waitress