美文网首页我爱编程
关于ajax的使用

关于ajax的使用

作者: 湾里晴空 | 来源:发表于2018-05-18 00:28 被阅读0次

ajax是什么,怎么用法?

  • ajax即“Asynchronous javascript and xml”(异步JavaScript和xml),其实是我们去操纵xml httprequest这个对象,向后台要数据,这个对象要完数据之后,页面不刷新,我们直接拿到这个数据然后进行一些展示或者处理。

如何mock数据?

  • 使用http-server打开一个静态服务器,在git bash 中输入http-server运行服务器,并使用该地址来访问相关文件。
  • 使用线上平台来mock数据。比如https://easy-mock.com这种平台
  • 使用git hub 来实现mock数据,具体是将code传入gitpage来实现预览
  • 使用node.js来手写一个静态服务器。

用代码区分使用post和get两种方法时在使用ajax的不同

  • 使用GET方法时(默认使用该方法)
 <script>
                              var xhr = new XMLHttpRequest()
                                xhr.open('GET', '/hello.json',true)
                                xhr.send()
                                xhr.onload = function(){
                                    if( (xhr.status >=200 && xhr.status <300) || xhr.status === 304){
                                        var data = xhr.responseText
                                        console.log(data)
                                    }
                                    else{
                                        console.log('error')
                                    }
                                }
                              </script>
  • 使用post方法
 <script>
                              var xhr = new XMLHttpRequest()
                                xhr.open('POST', '/hello',true)
                                xhr.send('name=jirengu$age=2')
                                xhr.onload = function(){
                                    if( (xhr.status >=200 && xhr.status <300) || xhr.status === 304){
                                        var data = xhr.responseText
                                        console.log(data)
                                    }
                                    else{
                                        console.log('error')
                                    }
                                }
                              </script>

封装一个 ajax 函数,能实现如下方法调用

function ajax(options){
    //补全
}
ajax({
    url: 'http://api.jirengu.com/weather.php',
    data: {
        city: '北京'
    },
    onsuccess: function(ret){
        console.log(ret)
    },
    onerror: function(){
        console.log('服务器异常')
    }
})

答案

function ajax(opts){
                var url = opts.url
                var type = opts.type || 'GET'
                var dataType = opts.dataType || 'json'
                var onsuccess = opts.onsuccess|| function(){}
                var onerror = opts.onerror || function(){}
                var data = opts.data  || {}

            var dataStr = []
            for (var key in data){
                dataStr.push(key +'='+ data[key])
            }
            dataStr = dataStr.join('&')

            if (type == 'GET'){
                url += url+'?'+ dataStr
            }
            var xhr = new XMLHttpRequest()
            xhr.open(type,url,true)
            xhr.onload = function(){
                if ((xhr.status >=200 && xhr.statue <300) || xhr.status === 304){
                    //成功了
                    if( dataType === 'json'){
                        onsuccess( JSON.parse(xhr.responseText))
                    }  
                    else{
                        onsuccess( xhr.responseText)
                    }              
            }
            else{
                onerror()
            }               
            }
            xhr.onerror = onerror
            if (type === 'POST'){
                xhr.send(dataStr)
            }
            else{
                xhr.send()
            }

            ajax({
                url : 'https://jirengu.com',
                data : {
                    city: "北京"
                },
                onsuccess:function(ret){
                    console.log(ret)
                },
                onerror : function(){
                    console.log('服务器异常')
                }

            })

相关文章

  • ajax小结

    在开发过程中ajax是必须的,对近期在ajax的使用上的心得进行总结。 一、关于ajax AJAX = Async...

  • 关于ajax的使用

    ajax是什么,怎么用法? ajax即“Asynchronous javascript and xml”(异步Ja...

  • Ajax Axios

    关于Ajax兼容性问题 前端原生Ajax(get方式),后端使用node.js 前后端代码: 前端原生Ajax(p...

  • HTML5权威指南 | 第五部分 高级功能

    三十二、使用AJAX(上) Ajax起步: 使用Ajax事件: Ajax请求的错误处理: 中止Ajax请求: 三十...

  • springMVC的ajax请求

    关于spring MVC 的ajax请求 今天在使用spring MVC 的时候遇到了一个ajax请求的问题。 我...

  • JavaScript进阶知识点--AJAX及JSON

    AJAX 关于 AJAX 什么是 AJAX AJAX 的全称是 Asynchronous JavaScript a...

  • ajax使用注意

    新版jQuery使用ajax: 旧版jQuery使用ajax:

  • jQuery事件

    jQuery如下函数如何使用?演示使用方法 介绍以下函数的用法 对于$.ajax,有以下范例 关于'.get',对...

  • Ajax 笔记

    Ajax 使用 创建动态网页的技术 Ajax 介绍 AJAX = Asynchronous JavaScript ...

  • 解决ajax获取数据的问题

    解决ajax获取数据的问题 在使用ajax的过程中,需要注意多个环节 ajax的基本使用方式 通过ajax未得到数...

网友评论

    本文标题:关于ajax的使用

    本文链接:https://www.haomeiwen.com/subject/qfcwdftx.html