95CACA 2018-03-18 07:35 采纳率: 33.3%
浏览 1433
已采纳

django +jquery+ ajax get提交报错,post提交就可以

 模板:(index.html)
“
<html>
<body>
<p>请输入两个数字</p>
<form action="/index" method="get">
    a: <input type="text" id="a" name="a"> <br>
    b: <input type="text" id="b" name="b"> <br>
    <p>result: <span id='result'></span></p>
    <button type="button" id='sum'>提交</button>
</form>

<!---<script type="text/javascript" src="/static/jquery-3.3.1.min.js"></script>--->
<script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
    $(document).ready(function(){
      $("#sum").click(function(){
        var a = $("#a").val();
        var b = $("#b").val();

        $.get("/index",{'a':a,'b':b}, function(ret){
            $('#result').html(ret.result)
        })
      });
    });
</script>
</body>
</html>”
**url 代码:**
urlpatterns = [
    url(r'testDb' , testDb),
    url(r'query' , Query),
    url(r'formdemo' , searchtest.search),
    url(r'^seachDemo' , searchtest.search_form),
    url(r'^index' , view.loginIndex),
]

 python 代码view.py:

def loginIndex(request):
    if(request.method == 'GET'):
        a = int(request.GET.get('a'))
        b = int(request.GET.get('b'))
        return_json = {'result': a + b}
        return HttpResponse(json.dumps(return_json), content_type='application/json')
    return  render(request,"index.html")
    报错:
    TypeError at /index

int() argument must be a string, a bytes-like object or a number, not 'NoneType'

Request Method: GET
Request URL: http://127.0.0.1:8000/index
Django Version: 2.0.3
Exception Type: TypeError
Exception Value:

int() argument must be a string, a bytes-like object or a number, not 'NoneType'

Exception Location: D:\PythonDemo\PythonDemo\view.py in loginIndex, line 12
Python Executable: D:\PythonDemo\venv\Scripts\python.exe
Python Version: 3.6.3
Python Path:

['D:\PythonDemo',
'D:\PythonDemo',
'D:\PythonDemo\venv\Scripts\python36.zip',
'X:\python\DLLs',
'X:\python\lib',
'X:\python',
'D:\PythonDemo\venv',
'D:\PythonDemo\venv\lib\site-packages',
'D:\PythonDemo\venv\lib\site-packages\setuptools-28.8.0-py3.6.egg',
'D:\PythonDemo\venv\lib\site-packages\pip-9.0.1-py3.6.egg',
'X:\PyCharm\PyCharm 2017.3.4\helpers\pycharm_matplotlib_backend']

Server time: Sun, 18 Mar 2018 07:35:40 +0000

这个报错也让我很懵逼,我把提交方式,和ajax方法改成post,就没有这个报错,程序可以正常运行

  • 写回答

2条回答

  • 三阶魔方 2018-03-18 09:31
    关注

    这句你应该看得懂,告诉你了,参数需要是string或者数字,但不能是空。
    int() argument must be a string, a bytes-like object or a number, not 'NoneType'
    明显你的request.GET.get('a')是空值。
    你个$.get方法也对的。
    你的代码也是对的。
    那么只有$.get下的data节点有可能出错了。
    你改为:{a:a,b:b}试一试。
    同时,使用Chrome或者firefox去看network里面那条产生的请求对不对。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧