javascript - ajax问题求助
高洛峰
高洛峰 2017-04-11 10:07:26
[JavaScript讨论组]
ajax({
    url : 'json2.json',
    type: 'get',
    dataType : 'json',
    success : function(text){alert(responseText);},
    fail : function(status){alert(status);}
});

function ajax(options){
    options = options || {};
    options.type = (options.type || 'get').toUpperCase();
    options.dataType = options.dataType||'json';
    options.data = {"name":"dzxczx","phone":188};
    var params = formParams(options.data);

    var xhr;
    if(window.XMLHttpRequest){
        xhr = new XMLHttpRequest();
    }else if(window.ActiveXObject){
        xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }else{
        throw new Error('Your browser does not support XHR');
    }

    if(options.type == 'GET'){
        xhr.open('GET',options.url + '?' + params,true);
        xhr.send(null);
    }else if(options.type == 'POST'){
        xhr.open('POST',options.url,true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send(params);
    }

    xhr.onreadyStatechange = function(){
        if(xhr.readyState == 4){
            var status = xhr.status;
            if(status >= 200 && status < 300){
                options.success && options.success(xhr.responseText);
            }else{
                options.fail && options.fail(status);
            }
        }
    }

    function formParams(data){
        var arr = [];
        for(var name in data){
            arr.push(encodeURIComponent(name) + '=' + encodeURIComponent(data[name]));
        }
        arr.push(('v='+Math.random()).replace('.',''));
        return arr;
    }
}
url
{
    "name": "kitty",
    "sex": "female",
    "age": 3,
    "siblings": {
        "name": "hello",
        "sex": "male",
        "age": 4
    }
}

服务开了之后打开后报错

谷歌的跨域我也整了 还是不行?怎么回事啊?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
伊谢尔伦

错误信息写的很明白了,跨域请求只支持几种协议,file协议并不支持。你可以把自己的项目用文件服务器托管一下,走网络请求就ok了。

迷茫

请求Ajax不能直接访问文件,需要开启一个静态服务器来访问文件,如用Apache

伊谢尔伦

本地启动web服务,把代码放上去再调试吧~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号