0
点赞
收藏
分享

微信扫一扫

封装AJAX

Java架构领域 2021-09-24 阅读 51
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    
        function ajax(options) {
                var url = options.url;
                var type = options.type || 'GET';
                var dataType = options.dataType || 'json';
                var onsuccess = options.success || function () { };
                var onerror = options.error || function () { };
                var data = options.data;

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

                if (type === 'GET') {
                    url += '?' + dataStr
                }

                var xhr = new XMLHttpRequest();
                xhr.open(type, url, true);
                xhr.onload = function(){
                    if ((xhr.status >= 200 && xhr.status < 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:'http://api.jirengu.com/weather.php' ,
           data:{
               city:'北京'
           },
           onsuccess:function(ret){
               console.log(ret); 
           },
           onerror:function(){
               console.log('服务器异常'); 
           }
        })


    </script>
</body>
</html>
举报

相关推荐

0 条评论