Spring Cloud / Alibaba 微服务架构实战aaa

## download:Spring Cloud / Alibaba 微服务架构实战

后台代码都是应用的

1.【get方式】运用jquery的get json与后台交互

前端js代码片段

?

1

2

3

4

5

6

7

8

var data= {

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

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

}

$.getJSON($SCRIPT_ROOT + '/_add_numbers',data, function(data) {

$('#result').text(data.result);

$('input[name=a]').focus().select();

});

后端pthon代码如下

?

1

2

3

4

5

6

# ajax,Get方式与js交互(非表单)采用了flask框架@app.route('/_add_numbers')def add_numbers():

  """Add two numbers server side, ridiculous but well..."""

  = request.args.get('a'0type=int)

  = request.args.get('b'0type=int)

  log.info(a)

  log.info(b)  return jsonify(result=+ b)

2.【万能方式】运用jquery的ajax与后台交互,设置不同的参数,能够get也能够post

上面的例子用ajax方式,前端代码如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

var data= {

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

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

        }

{#        $.getJSON($SCRIPT_ROOT + '/_add_numbers',data, function(data) {#}

{#          $('#result').text(data.result);#}

{#          $('input[name=a]').focus().select();#}

{#        });#}

        $.ajax({

          type: 'get',

          url: $SCRIPT_ROOT + '/_add_numbers',

          data: data,

          contentType: 'application/json; charset=UTF-8',

          dataType: 'json',

          success: function(data) {

            $('#result').text(data.result);

            $('input[name=a]').focus().select();

          },

          error: function(xhr, type,xxx) {

            alert('error ')

          }

        });

后台代码不便仍然是

?

1

2

3

4

5

6

# ajax,Get方式与js交互(非表单)@app.route('/_add_numbers')def add_numbers():

  """Add two numbers server side, ridiculous but well..."""

  a = request.args.get('a', 0, type=int)

  b = request.args.get('b', 0, type=int)

  log.info(a)

  log.info(b)  return jsonify(result=a + b)

3.用ajax补充一个post方式的例子

前端js如下

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

function testmethod ()

    {

      alert('rabbit');

      var data = {

        "name""test"

      }

      $.ajax({

        type: 'POST',

        url: '/login',

        data:data,

        contentType: 'application/json; charset=UTF-8',

        dataType: 'json',

        success: function(data) {

          $('#result').text(data.username);

        },

        error: function(xhr, type) {

          alert('error ')

        }

      });

    }

后台代码如下:

?

1

2

3

4

5

# ajax ,post方式与js交互(表单提交)

@app.route('/login',methods=['POST'])

def login():

  log.info('lalal')

  return jsonify(username='xixi',pwd='123')

这样就很轻松的完成了前端与后台的交互

实质上,前端与后端交互都是经过json完成的

至于表单提交,就不需求写js了,在form表单里面有有一个submit类型按钮,点击时,会自动提交到后台对应的路由上停止处置。关于表单提交,后台能够用

?

1

s=request.form.get('username',None)

来捕捉前端网页的值。但是假如是非表单提交,则需求用js获取值后,经过data参数传入到后端才行。

实例扩展:

python运用flask与js停止前后台交互的例子

flask与js停止前后台交互代码如下,后台给前端发数据:

python局部:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

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

from flask import Flask,jsonify,render_template

import json

 

app = Flask(__name__)#实例化app对象

 

testInfo = {}

 

@app.route('/test_post/nn',methods=['GET','POST'])#路由

def test_post():

 testInfo['name'= 'xiaoming'

 testInfo['age'= '28'

 return json.dumps(testInfo)

 

@app.route('/')

def hello_world():

 return 'Hello World!'

 

@app.route('/index')

def index():

 return render_template('index.html')

 

 

if __name__ == '__main__':

 app.run(host='0.0.0.0',#任何ip都能够访问

   port=7777,#端口

   debug=True

   )

js局部:

 

    

 

 

上一篇:Nginx 解决Ajax跨域请求问题


下一篇:华为网络设备console口登陆