javascript - tornado ajax parsererror
巴扎黑
巴扎黑 2017-04-11 12:16:09
0
1
585

之前使用flask 写过类似于web qq 的一个东西 现在试着使用tornado 在使用ajax的时候出现了一个parsererror 我使用的json格式 具体的代码如下 請指教

main.py

#-*-coding:utf-8-*-

import os.path
import tornado.web
import tornado.httpserver
import tornado.options
import tornado.ioloop
import json
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

from tornado.options import define,options
define("port",default=8080,help="run on the given port",type=int)

class Application(tornado.web.Application):
    def __init__(self):
        handlers=[(r'/',IndexHandler),(r'/chat',ChatHandler)]
        settings=dict(
                template_path=os.path.join(os.path.dirname(__file__),"templates"),
                debug=True,
            )
        tornado.web.Application.__init__(self,handlers,**settings)

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.write(u'你好主任 我是主页君!')

class ChatHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('chat.html')

    def post(self):
        name=self.get_argument('name')
        password=self.get_argument('password')
        if name!="zhengxia":
            self.write(json.dumps({'name_warning':u"用户名错误!"}))
        if password!="jin0123":
            self.write(json.dumps({'pass_warning':u"密码错误!"}))
        if name=="zhengxia" and password=="jin0123":
            self.write(json.dumps({'login_success':u"登录成功!"}))
        self.render('chat.html')

if __name__=="__main__":
    tornado.options.parse_command_line()
    httpserver=tornado.httpserver.HTTPServer(Application())
    httpserver.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

chat.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单提交君</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">

    function ajaxForm(){

        $(function(){

            $.ajax({

                method: 'POST',

                contentType: 'application/x-www-form-urlencoded;charset=UTF-8',

                url: 'http://localhost:8080/chat',

                dataType: 'json',

                data:{

                    'name' : $('input[name="name"]').val(),

                    'password' : $('input[name="password"]').val()

                    },

                error: function(xhr,err){

                    alert('请求失败,原因可能是:'+err+'!');

                        },

                success: function(data,textStatus){

                    if (data.name_warning){

                        alert(data.name_warning);

                            }

                    else if (data.pass_warning){

                        alert(data.pass_warning);

                            }

                    else if (data.login_sucess){

                        alert(data.login_success);

                            }

                    $('input[name="name"]').val('');

                    $('input[name="password"]').val('');

                        }

                });

            });

            return false;
        }
</script>
</head>
<body>
    <p class="render_form">
        <h1>提交吧 表单君</h1>
        <form method="post" name="form" action="" onsubmit="return ajaxForm()">
        <input type="text" name="name" /><br>
        <input type="password" name="password" /><br>
        <input type="submit" value="提交" />
        </form>
    </p>
</body>
</html>
巴扎黑
巴扎黑

reply all(1)
Peter_Zhu

不在这里丢人了 多加了一句
self.render('chat.html')
flask 非插拔视图写习惯了

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template