zoukankan      html  css  js  c++  java
  • Ajax JavaScript传参

    get请求需要拼接到url里面

    post请求,需要放到send方法里面,后端取值的时候,Ajax用JavaScript传输跟用postman传输,取值方式有些区别,这里做一下详细记录

    传参格式{'id':1}
            request.body取值,得到的结果如下:
            b'{
        "name":"olive",
        "phone":18503234424,
        "home":"xe6xb1x9fxe8x8bx8fxe7x9cx81"
    }' <class 'bytes'>
            ajax post body params b'{"name":"kevin","phone":"13689897878","home":"xe5x90x89xe6x9ex97xe7x9cx81"}' <class 'bytes'>
            
            request.data取值,postman 和ajax 反馈结果如下:
            ajax  <QueryDict: {'{"name":"simon","phone":"15646465585","home":"安徽省"}': ['']}> <class 'django.http.request.QueryDict'>
            postman   {'data': {'name': 'oven', 'phone': 18503004424, 'home': '江苏省'}} <class 'dict'>

    后端是用APIView,post取值方式,request.data/request.body
    当用request.body取值的时候,不论是postman还是Ajax都是byte格式,拿到byte之后,json.loads就能得到对象,可以直接拿到数据。
    用request.data取值的时候,Ajax传过来的就是querydict,postman传过来的就是dict对象。这个还挺奇怪的。可能是request里面封装了什么东西导致的这样的区别
    传参格式   data={‘id’:1}
    当传参格式发生变化时,request.data取值,ajax传递的querydict格式发生变化,如下
    <QueryDict: {'data': ['{"name":"simon","phone":"15646465585","home":"安徽省"}']}> <class 'django.http.request.QueryDict'>

    request.data.get("data") 拿到的是str需要序列化转成dict对象
  • 相关阅读:
    js分页的一些思考
    是时候写个自己的dialog了
    自定义幻灯片
    触屏开发技巧之——左右滑动导航
    影响网页响应的一个小习惯
    一个简单WebApp的全程
    选项卡(一个最常见的网页组件)
    REGEX
    map<虽然一直不喜欢map>但突然觉得挺好用的
    迭代器
  • 原文地址:https://www.cnblogs.com/2012-dream/p/14722078.html
Copyright © 2011-2022 走看看