2012-07-31 1 views
0

안녕하세요 :JSONP와 401 응답 내 웹 페이지에서 JSONP를 사용하여 자바 스크립트를 사용하여 아래의 코드 생성을 시도

function handleRefresh(url) { 
    console.log("here"); 

    var newScriptElement = document.createElement("script"); 
    newScriptElement.setAttribute("src", url); 
    newScriptElement.setAttribute("id", "jsonp"); 
    var oldScriptElement = document.getElementById("jsonp"); 
    var head = document.getElementsByTagName("head")[0]; 
    if (oldScriptElement == null) { 
     head.appendChild(newScriptElement); 
    } 
    else { 
     head.replaceChild(newScriptElement, oldScriptElement); 
    } 
} 

function updateStats(stats) { 
    var salesDiv = document.getElementById("stats"); 
    var newData = []; 
    if(!stats){ 
     alert("need to log in"); 
    }else{ 
     alert("ok"); 
    } 
    for (var s in stats) 
    { 
      var data = stats[s]; 
      data.language = s; 
      newData.push(data.language); 
     }  


    for (var i = 0; i < newData.length; i++) { 
     var glossa = newData[i]; 
     var stat = stats[glossa]; 

     var div = document.createElement("div"); 
     div.setAttribute("id", "progressbar"); 
     var indicator = document.createElement("label"); 
     indicator.setAttribute("id","indicator"); 

     var checkbox = document.createElement('input'); 
     checkbox.type = "checkbox"; 
     checkboxname = glossa; 
     checkbox.value = "value"; 
     checkbox.id = "id"; 

     glossesArray[i]=glossa; 

     div.appendChild(checkbox); 
     div.appendChild(indicator); 

     var zaab = parseInt(stat.completed, 10); 
      //console.log(zaab); 

     if(zaab < 35){ 
      indicator.innerHTML = glossa; 
     }else{ 
      indicator.innerHTML = glossa + " : " + stat.completed; 
      } 
     indicator.style.width = stat.completed; 
     //indicator.innerHTML = glossa + " : " + stat.completed; 

     if (salesDiv.childElementCount == 0) { 
      salesDiv.appendChild(div); 
     } 
     else { 
      salesDiv.insertBefore(div, salesDiv.firstChild); 
     } 

    } 
      //alert(zaab); 

    if (stats.length > 0) { 
     lastReportTime = stats[stats.length-1].time; 


    } 
} 

아래의 코드를 사용하여 생성

<script src="https://{{ username }}:{{ password }}@www.link.com/api/2/project/link/resource/core/stats/?callback=updateStats&amp;random=1343727774180" id="jsonp"></script> 

문제가있는 경우이다를 내가 승인되지 않은 응답 (401)을 받기 전에 로그인하지 않으므로 어떻게 응답을 읽을 수 있습니까?

답변

1

'callback = updateStats'를 설정했습니다. 지금 당신의 js에 기능을 추가하십시오

function updateStats(response){ 
// do something with response 
} 
+0

문제는 응답이 401 인 경우에 결코 저 기능이 결코 부르지 않는다이다! 그래서 나는 거기에서 아무것도 할 수 없다! 내 json 데이터를 얻으면 함수는 normall이라고 불린다. –

+0

내 코드를 보여주기 위해 내 대답도 업데이트했습니다! –

+0

하지만 (401 인 경우) 응답을 처리해야합니까? 그래서? – voodoo417

관련 문제