【问题标题】:how do you handle error while using xui's xhr?使用 xui 的 xhr 时如何处理错误?
【发布时间】:2011-11-23 23:39:11
【问题描述】:

我正在使用以下代码从外部网站获取一些数据。

<script type="text/javascript">
    xui.ready(function() { 

             var url = 'http://www.domain.com/getData.aspx';
             x$().xhr(url,function(){
                 alert(this.responseText);
             });    
        }
    );
</script>

更新:

我将代码更新为以下内容,但即使收到 404,回调函数仍会触发,而不是错误函数。

<script type="text/javascript">
    xui.ready(function() { 

             var url = 'http://localhost:49617/SalesForceWebservice/Test/Default4.aspx';
             x$().xhr(url,{
                 method: 'get',
                 async: true,
                 error: function(){
                     alert('error');
                 },
                 callback: function(){
                     alert('success');
                 }
             });
        }
    );

</script>

上面的代码工作得很好,但是今天早上,外部网站关闭了,这导致页面失败。根据文档,似乎只有当 xhr 调用接收状态 200 时才会调用回调函数。处理错误 500 或 404 的最佳方法是什么?

【问题讨论】:

    标签: javascript xmlhttprequest xui


    【解决方案1】:

    你读过documentation吗?

    看看你可以作为参数传递的 {options}:

    方法 字符串可以是get、put、delete、post。默认是获取。

    async 布尔值启用异步请求。默认为 false。

    data String 是要发送的参数的 url 编码字符串。

    错误函数在错误或状态不是 200 时被调用。(即失败回调)。

    回调函数在状态 200 上被调用(即成功回调)。

    【讨论】:

    • 不客气。太糟糕了,我不能接受我自己的答案,你能帮我做吗? :p
    • 我根据文档更新了问题,并在选项中添加了错误。它似乎仍然触发回调而不是错误。我放在那里的网址返回 404,因为该页面不存在
    • 响应以“45”开头时会触发error()函数。看看github.com/xui/xui/blob/master/src/js/xhr.js(第130行)>> if((/^[45]/).test (req.status)) req.handleError();
    猜你喜欢
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 2012-08-31
    • 2010-09-06
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多