V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
RangerWolf
V2EX  ›  问与答

js 有办法获取跨域抛出的异常吗?

  •  
  •   RangerWolf · 2014-11-14 16:45:32 +08:00 · 4964 次点击
    这是一个创建于 3699 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用Jquery的Ajax在百度搜索结果页面发出request:
    $.ajax({
    url: "http://www.baidu.com/link?url=8U2HyXKgEQPW2mVhf5M7XRn2zWeXRmMf5jvCmcmJPg335RTCCgvMc4HKn8ze6Awwk7S0uvzkLMMGUphSkwqAKq",
    })


    希望通过解析抛出的异常获得百度搜索结果真实的url. 抛出的异常如下:
    “XMLHttpRequest cannot load http://www.iteye.com/problems/12212&_=1415954040556. No 'Access-Control-Allow-Origin' 。。。”

    可以看到真实的地址 http://www.iteye.com/problems/。。。 已经出来了~
    但是我就是没有办法获得这个异常。

    试过jq的error 也试过window. onerror 都没办法抓到这个异常~

    google一圈也不知道原因~ 求助
    7 条回复    2015-12-22 16:04:45 +08:00
    chemzqm
        1
    chemzqm  
       2014-11-14 16:49:07 +08:00
    try catch 可以捕获,这个不是异步操作后出现的异常,但是一般不用管,开发时很容易看到
    RangerWolf
        2
    RangerWolf  
    OP
       2014-11-14 16:51:16 +08:00
    @chemzqm try-catch 也搞不定。。。 我把整个ajax请求的代码都包到try-catch 里面也没效果
    try{ ajax_code ... } catch(err) { console.log(err) }
    这样 没错吧?
    chemzqm
        3
    chemzqm  
       2014-11-14 17:40:33 +08:00   ❤️ 1
    是我说错了,它是异步的

    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
    console.log(xhr.readyState);
    }
    xhr.addEventListener('error', function(e) {
    console.log(e)
    }, false)
    xhr.open('GET', 'http://www.baidu.com', true);
    xhr.send();
    error时间触发了,但是chrome上测试 e 没有 message 属性
    binux
        4
    binux  
       2014-11-14 17:44:52 +08:00   ❤️ 1
    不能
    RangerWolf
        5
    RangerWolf  
    OP
       2014-11-14 21:58:25 +08:00
    @chemzqm 可能是因为同步异步的原因了吧~ 我再想想其他获得百度url真实地址的方法~ 多谢
    renminghao
        6
    renminghao  
       2015-12-21 20:57:55 +08:00
    亲 你现在找到获取这种异常的办法了么?现在我也遇到这个问题了 想请教下
    RangerWolf
        7
    RangerWolf  
    OP
       2015-12-22 16:04:45 +08:00
    没有。。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1018 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 256ms · UTC 21:38 · PVG 05:38 · LAX 13:38 · JFK 16:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.