2017-04-15 88 views
0

如何避免或捕獲javascript錯誤而不腳本中斷?如何避免ajax跨域請求上的javascript錯誤

將返回錯誤(空輸出)

$.ajax({ 
    type : 'GET', 
    dataType : 'jsonp', 
    url : '//cvrapi.dk/api?search=dsfsdfsd&country=dk', 
    success : function(res){ 
     if(success){ 
      success(res); 
     } 
    } 
}); 

不會返回錯誤(與輸出)

$.ajax({ 
    type : 'GET', 
    dataType : 'jsonp', 
    url : '//cvrapi.dk/api?search=test&country=dk', 
    success : function(res){ 
     if(success){ 
      success(res); 
     } 
    } 
}); 
+0

什麼錯誤? 'success()'做了什麼?需要適當的細節 – charlietfl

回答

0

第一個返回的請求404種狀態,所以你可以使用fail()趕不良要求和檢查狀態:

$.ajax({ 
 
    type: 'GET', 
 
    dataType: 'jsonp', 
 
    url: '//cvrapi.dk/api?search=dsfsdfsd&country=dk', 
 
    success: function(res) { 
 
    if (success) { 
 
     success(res); 
 
    } 
 
    } 
 
}).fail(function(err) { 
 
    console.log('Something went wrong'); 
 
    // check various status as documented by API 
 
    if (err.status === 404) { 
 
    console.log('Not found') 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

我有複製/粘貼你的代碼..'失敗'永遠不會在'404'上執行..我使用jquery'jquery.1.11.1' – clarkk

+0

'jsonp'是一個腳本請求,因此錯誤少得多處理能力不如ajax(XmlHttpRequest)請求。我的建議是你在你的服務器上建立一個代理服務器來發出json請求,並在那裏添加所有必要的錯誤處理 – charlietfl

+0

由於每個IP地址每天都有一個請求限制,所以不可能這樣做..是''失敗'不能用jquery 1.11.1? – clarkk