jquery的Ajax使用

get

post

load

直接上代码

测试需要先express .生成一个项目 npm i 安装

public下新建个index.html来测试

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

  </head>
  <body>

    <div class="box">
    </div>

    <script type="text/javascript">
    //不刷新当前页的情况下去服务器端拿到东西
    // get数据不能太大,不能大于4kb
      $.get("/get_type",{group:"js"},function(res){
        console.log(res);
      })


      $.post("/get_json",{qinghua:"i love express!"},function(res){
        console.log(res);
        console.log(typeof res);//自动检查服务器端是什么格式。这里是json
      });

      // $.post("/get_json",{qinghua:"i love express!"},function(res){
      //   console.log(res);
      //   console.log(typeof res);//string
      // },"text");

      // load是对get的一个简化写法,不支持回调函数,
      // 需要作用在一个dom或才一堆dom对象上的。

      $(".box").load("/load_html");
    </script>

  </body>
</html>

app.js来响应

// app.use('/', index);
// app.use('/users', users);
app.post("/get_json",function(req,res){
  res.send({name:"wss",qq:"78678",qh:req.body.qinghua});
})

app.get("/get_type",function(req,res){
  res.send(req.query);
})

app.get('/load_html',function(req,res){
  res.send(`
    <h1>啊 大海 </h1>
    <p>我爱你在海</p>
    `);
})

再来一个文章创建的简单小例子

index.html

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title></title>
  <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
  <style media="screen">
    .write {
      display: none;
      position: fixed;
      width: 300px;
      height: 240px;
      left: 50%;
      top: 50%;
      margin-left: -150px;
      margin-top: -110px;
      background-color: #eee;
      border: 2px solid #aaa;
    }
  </style>
</head>

<body>
  <nav>
    <a class="open-write-dialog" href="#"> write </a>
  </nav>
  <div class="article-list">

  </div>

  <div class="write">
    <p>
      <input type="text" name="title" value="" placeholder="请输入文章标题">
    </p>
    <p>
      <textarea name="content" style="width:290px;" rows="8" placeholder="请输入内容"></textarea>
    </p>
    <p>
      <button type="button" name="button"> 发布 </button>
    </p>
  </div>

  <script type="text/javascript">



    function generate_html(title, content) {
      return `
          <article>
            <h1>${title}</h1>
            <p>${content}</p>
          </article>`;
    }


    const writeDialog = $(".write");
    const titleInput = $(".write input[name=title]");
    const contentInput = $(".write textarea");
    const submitButton = $(".write button");
    const articleList = $(".article-list");

    const openWriteDialogButton = $(".open-write-dialog");

    $.get("/init_data",function (aritlces) {
      aritlces.forEach(article=>articleList.append(generate_html(article.title,article.content)));
    });

    openWriteDialogButton.click(function() {
      writeDialog.css({
        display: "block"
      });
    });

    submitButton.click(function() {
      // submit
      const title = titleInput.val();
      const content = contentInput.val();
      titleInput.val("");
      contentInput.val("");

      articleList.append(generate_html(title,content));

      $.post("/write", {
        title,
        content
      });
    });
  </script>
</body>

</html>

app.js

需要引入fs,util

var fs = require("fs");
var {promisify} = require("util");
var writeFile = promisify(fs.writeFile);
//把 fs写入 writeFile 的回调函数转化成 promise对象的一个工具

创建db.json用于存放数据

内容:       []

const db = require("./db");

app.get("/init_data",function(req,res){
  res.send(db);
})

app.post("/write",async function(req,res){
  db.push(req.body);//未真实的写入文件db.json
  await writeFile(__dirname+"/db.json",JSON.stringify(db));//写入 返回的是promise 可以await
  res.send();
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值