IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

ajax跨域请求问题解决方案

Codyy技术团队 2009-10-20 22:47:36 累计浏览 3,442 次
本机暂存
以下是代码片段:
    var proxy = {};
    /*@资源地址*/
    proxy.url = null;
    /*@数据对象*/
    proxy.data = null;
    /*@脚本对象*/
    proxy.script = null;
    /*@创建对象*/
    proxy.create = function(){
    proxy.script = document.createElement(”script”);
    proxy.script.type = “text/javascript”;
    document.getElementsByTagName(”head”)[0].appendChild(proxy.script);
    };
    /*@打开连接*/
    proxy.request = function(url ,CallBack ,charset){
    proxy.script.src = url;
    proxy.url = url;
    proxy.script.setAttribute(”charset” ,charset);
    if (document.all)
    {
    proxy.script.onreadystatechange = function(){
    if (proxy.script.readyState == “loaded” || proxy.script.readyState == “complete”)
    {
    CallBack(proxy.data);
    }
    };
    }
    else
    {
    proxy.script.onload = function (){
    CallBack(proxy.data);
    };
    }
    };
    /*@添加监听*/
    proxy.addEventHandler = function(target, eventType, handler){
    if (target.addEventListener)
    {
    target.addEventListener(eventType, handler, false);
    }
    else if (target.attachEvent)
    {
    target.attachEvent(”on” + eventType, handler);
    }
    else
    {
    target["on" + eventType] = handler;
    }
    };
    proxy.addEventHandler(window ,”load” ,proxy.create);

    为了实现跨域提交,我们还需要相关服务来支持,及返回什么格式的信息,接收什么样的数据。

    比如这里约定为服务器端返回数据格式为:

以下是代码片段:
    proxy.data = {
    errCode:1 ,
    description:”用户名格式错误”
    };

    那么调用我们就可以使用:

以下是代码片段:
    proxy.request(”data.js” ,function(data){
    alert(data.errCode);
    alert(data.description);
    });

    这里的data.js就相当于一个server端的服务,真正使用的时候会传相关的参数进去,返回的结果同统一的 proxy.data = {***}这样的,proxy.data为一个json object。

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. 使用python/casperjs编写终极爬虫-客户端App的抓取 (累计阅读 12,961)
  2. YSLOW法则中,为什么yahoo推荐用GET代替POST? (累计阅读 11,839)
  3. JSONP与POST方式请求 (累计阅读 11,294)
  4. jQuery插件---轻量级的弹出窗口wBox. (累计阅读 10,772)
  5. 10个强大的Ajax jQuery文件上传程序 (累计阅读 8,854)
  6. JSON和JSONP的区别 (累计阅读 8,469)
  7. 你不知道的 HTTP (累计阅读 6,512)
  8. jQuery中getJSON跨域原理详解 (累计阅读 6,351)
  9. nyroModal:强大的jQuery弹出层插件 (累计阅读 5,918)
  10. ajax-cross-domain (累计阅读 5,906)