呼吸过度动画片百度云百度云,分享给我一下谢谢~

django通过ajax发起请求返回JSON的问题 - 开源中国社区
当前访客身份:游客 [
当前位置:
这是后台处理的
def checkemail(request): &&& user = None
&&& if request.POST.has_key('email'):
&&&&&&& useremail = request.POST['email']
&&&&&&& result = {}
&&&&&&& user = User.objects.filter(useremail__iexact = useremail)
&&& if user:
&&&&&&& result = &1&
&&&&&&& result = simplejson.dumps(result)
&&&&&&& result = &0&
&&&&&&& result = simplejson.dumps(result)
&&& return HttpResponse(result, mimetype='application/javascript')
这是AJAX部分
if(valid_email($('#reg-for-email').val())){ &&&&&&&&&&& var email = $('#reg-for-email').val(); &&& &&& &&& //这里把用户输入的EMAIL地址提交到后台数据库中去验证是否已存在。 &&&&&&&&&&& $.ajax({ &&&&&&&&&&&&&& type:&POST& , &&&&&&&&&&&&&& url:&/reg/checkemail&, &&&&&&&&&&&&&& data:&email=& + email , &&&&&&&&&&&&&& cache: false, &&&&&&&&&&&&&& success: function(result){ &&&&&&&&&&&&&&&&&& if (result==1) &&&&&&&&&&&&&&&&&&&& { &&&&&&&&&&&&&&&&&&&&&& $(&#reg-for-email-msg&).removeClass(&g-hide&); &&&&&&&&&&&&&&&&&&&&&& $('#reg-for-email-msg').removeClass(&msg-isok&).addClass(&msg-error&).html(&该邮箱已存在!&); &&&&&&&&&&&&&&&&&&&&&& eok = &&&&&&&&&&&&&&&&&&&& } &&&&&&&&&&&&&&&&&&&& else &&&&&&&&&&&&&&&&&&&& { &&&&&&&&&&&&&&&&&&&&&& $(&#reg-for-email-msg&).addClass(&g-hide&); &&&&&&&&&&&&&&&&&&&&&& eok = &&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&& } &&&&&&&&&&&& })
URL的配置是:
&url(r'^reg/checkemail/', 'reg.views.checkemail', name='ce'),
共有8个答案
<span class="a_vote_num" id="a_vote_num_
注意CSRF 处理 &可以用修饰器 去掉CSRF &也可以自己在js中处理csrf&
<span class="a_vote_num" id="a_vote_num_
嗯,csrf的问题,我已经处理掉了,现在POST数据是成功了,问题是一直返回的是HTML页面啊。
<span class="a_vote_num" id="a_vote_num_
呵呵 看一下HTML页面的内容 也许是什么错误~~~~
<span class="a_vote_num" id="a_vote_num_
没错误,我估计是我路由配错了,算了,我自己去找资料学习吧
<span class="a_vote_num" id="a_vote_num_
好像请求发过去之后,根本没有进入def checkemail(request):里去执行啊!
<span class="a_vote_num" id="a_vote_num_
好了,搞定了!
<span class="a_vote_num" id="a_vote_num_
怎么搞定的?我现在也是返回html页面。。。
<span class="a_vote_num" id="a_vote_num_
return HttpResponse(json.dumps({"content":content}))
这样是不是就返回json了呢
更多开发者职位上
有什么技术问题吗?
大王叫我...的其它问题
类似的话题4501人阅读
Python(2)
如果使用request.POST得到的是动作描述,其数据会转换为下标。
可以使用request.raw_post_data得到全部数据,是一个字符串。
再用simplejson.loads()转换为JSON就可以使用了。
另如果是跨域提交需要关闭CSRF,或验证CSRF。目前最好是关闭,比较方便。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11827次
排名:千里之外
(1)(1)(1)(1)(1)(1)(2)(1)随笔 - 895&
评论 - 116&
&&&&&&&&&&&
转载请注明出处:
from:/questions/7278523/avoiding-djangos-querydict-list-limitations
from:/93/request-post-get-multiple-values
1、django获取post过来的多个键值对:
var languages = {};languages['english'] = ['mark', 'james'];languages['spanish'] = ['amy', 'john'];$.ajax({&&& type: 'POST',&&& url: '/save/',&&& data: languages,&&& dataType: 'json'
Django Views.py
if request.is_ajax() and request.method == 'POST':&&& for key in request.POST:&&&&&&& print key&&&&&&& valuelist = request.POST.getlist(key)&&&&&&& print valuelist
---------------------
name= age=26;
---------------------
&16&&&& for key in request.POST: &17&&&&&&&& print key &18&&&&&&&& valuelist = request.POST.getlist(key) &19&&&&&&&& print valuelist----------------------------
Development server is running at http://192.168.1.102:8357/ Quit the server with CONTROL-C. Your method is POST!&&&&&&&&& name [u'june']age [u'26'] [04/Apr/:11] "POST /getuin/ HTTP/1.1" 200 20
2、一次加载所有值:
def view_example(request):&&& data=simplejson.loads(request.raw_post_data)3、获取多个值作为一个列表
The QueryDict.getlist() allows to get all the checkbox(or select list) values from the request.POST/GET object.Let&s assume we have a simple form with the following checkboxes. Each checkbox contains an ID of an artist. 1&& &&form method="post" action=""& 2&& &&& ... 3&& &&input value="1" name="artists" type="checkbox"& 4&& &&input value="2" name="artists" type="checkbox"& 5&& &&input value="3" name="artists" type="checkbox"& 6&& &&& ... 7&& &&/form&In views.py : 1&& &def handle(request): 2&& &&&& if request.method == 'POST': 3&& &&&&&&&&& artists = request.POST.getlist('artists') # now artists is a list of [1,2,3]
阅读(...) 评论()

我要回帖

更多关于 呼吸过度 百度云 的文章

 

随机推荐