1. 程式人生 > >js原生網路請求資料

js原生網路請求資料

用js請求網路資料
第一種方法:

//ajax 物件
function ajaxObject() {
    var xmlHttp;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
        } 
    catch (e) {
        // Internet Explorer
        try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch
(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("您的瀏覽器不支援AJAX!"); return false; } } } return xmlHttp; } // ajax post請求: function ajaxPost ( url ) { var ajax = ajaxObject(); ajax.open( "get"
, url , true ); ajax.setRequestHeader( "Content-Type" , "application/json;charset=utf-8" ); ajax.onreadystatechange = function () { if( ajax.readyState == 4 ) { if( ajax.status == 200 ) { var response = JSON.parse(ajax.responseText) console.log("返回的資料"
) console.log(response) console.log("...............") } } } ajax.send( null ); } var titleUrl='這裡寫請求地址' ajaxPost(titleUrl)

第二種方法(一般我用這種)

/* 封裝ajax函式
 * @param {string}opt.type http連線的方式,包括POST和GET兩種方式
 * @param {string}opt.url 傳送請求的url
 * @param {boolean}opt.async 是否為非同步請求,true為非同步的,false為同步的
 * @param {object}opt.data 傳送的引數,格式為物件型別
 * @param {function}opt.success ajax傳送並接收成功呼叫的回撥函式
 */
    function ajax(opt) {
        opt = opt || {};
        opt.method = opt.method.toUpperCase() || 'POST';
        opt.url = opt.url || '';
        opt.async = opt.async || true;
        opt.data = opt.data || null;
        opt.success = opt.success || function () {};
        var xmlHttp = null;
        if (XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        }
        else {
            xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }var params = [];
        for (var key in opt.data){
            params.push(key + '=' + opt.data[key]);
        }
        var postData = params.join('&');
        if (opt.method.toUpperCase() === 'POST') {
            xmlHttp.open(opt.method, opt.url, opt.async);
            xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
            xmlHttp.send(postData);
        }
        else if (opt.method.toUpperCase() === 'GET') {
            xmlHttp.open(opt.method, opt.url + '?' + postData, opt.async);
            xmlHttp.send(null);
        } 
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                opt.success(JSON.parse( xmlHttp.responseText));//如果不是json資料可以去掉json轉換
            }
        };
    }

第二種方法使用:

ajax({
            method: 'POST',
            url: 'url',
            success: function (OriginalFromActivity) {
                //在這裡對獲取的資料經常操作


                }
 })