2016-09-27 5 views
0

일부 동전 값 (이 경우 bitcoin (BTC) 및 NLG)이있는 대시 보드를 만들고 있습니다. BTC의 현재 값을 bitstamp에서 가져 오는 중, NLG를 BTC로 가져 오려고합니다. Bittrex의 가치. 의 bittrex API 호출이 작동하지 않기 때문에 나는 두 자바 스크립트를 분할 지금자바 스크립트에서 API 응답 표시

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 
    <title>Coin.hmrt.nl</title> 

    <!-- Bootstrap --> 
    <link href="css/bootstrap.min.css" rel="stylesheet"> 

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> 
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
    <!--[if lt IE 9]> 
     <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> 
     <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> 
    <![endif]--> 
    </head> 
    <body> 
    <nav class="navbar navbar-inverse navbar-fixed-top"> 
     <div class="container"> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="#">Coin.hmrt.nl</a> 
     </div> 
     <div id="navbar" class="collapse navbar-collapse"> 
      <ul class="nav navbar-nav"> 
      <li><a href="#NLG-BTC">NLG-BTC</a></li> 
      <li><a href="#NLG">NLG</a></li> 
      <li><a href="#BTC">BTC</a></li> 
      </ul> 
     </div><!--/.nav-collapse --> 
     </div> 
    </nav> 

    <div class="container" id="NLG-BTC"> 
     <section> 
     <h2>NLG-BTC</h2> 
     <div class="row row-eq-height"> 
      <div class = col-md-4> 
      <h4>Huidige waarden</h4> 
      <p class="BTC_EUR">BTC(&euro;): </p> 
      <p class="greeting-content">NLG(&euro;): </p> 
      <p class="NLG_BTC">NLG(BTC): </p> 
      </div> 

      <div class = col-md-4> 
      <p class="last-bid">The API result is </p> 
      <p>1</p> 
      </div> 

      <div class = col-md-4> 
      <img src="grafiek.jpg"> 
      </div> 
     </div> 

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <!-- Include all compiled plugins (below), or include individual files as needed --> 
    <script src="js/bootstrap.min.js"></script> 
    <script src="hello.js"></script> 
    <script src="get_values.js"></script> 
    <script src="get_values2.js"></script> 
    </body> 
</html> 

: ((I 어떤 시점에서 그것을 제거하는 것) http://coin.hmrt.nl/ 당신은 또한 여기에서 찾을 수 있습니다) 나는 다음 페이지를 만든 비트 스탬프 하나가 그 값을로드하지 못하게합니다. 이들은 javascripts, 첫 번째 작품입니다.

$(document).ready(function() { 
    $.ajax({ 
    url: "https://www.bitstamp.net/api/v2/ticker/btceur" 
    }).then(function(response_BTC_EUR) { 
    var BTC_EUR = response_BTC_EUR.last; 
    $('.BTC_EUR').append(BTC_EUR); 

    url: "http://rest-service.guides.spring.io/greeting" 
}).then(function(data) { 
    $('.greeting-id').append(data.id); 
    $('.greeting-content').append(data.content); 
    }); 
}); 

이 하나가 출력 제공하지 않습니다 : 파이썬에서

$(document).ready(function() { 
    $.ajax({ 
    url: "https://bittrex.com/api/v1.1/public/getticker?market=BTC-NLG" 
    }).then(function(response_NLG_BTC) { 
    console.log(response_NLG_BTC) 
    var NLG_BTC = response_NLG_BTC 
    $('.NLG_BTC').append(NLG_BTC.result); 
    }); 
}); 

나는 모든 API가 작동이, 예를 들어,이 코드는 작동합니다

requests.get('https://bittrex.com/api/v1.1/public/getticker?market=BTC-NLG').json() 

그것은 생산 :

{'message': '', 
'result': {'Ask': 1.1e-05, 'Bid': 1.099e-05, 'Last': 1.099e-05}, 
'success': True} 

내가 무엇이 누락 되었습니까? 또한 내가 잘못한 부분에 대한 피드백이 없기 때문에 디버깅하기가 매우 어렵거나 실제로 불가능하다는 것을 알았습니다. 어떤 아이디어?

$(document).ready(function() { 
     $.ajax({ 
     url: "https://bittrex.com/api/v1.1/public/getticker?market=BTC-NLG" 
     }).then(function(response_NLG_BTC) { 
     console.log(response_NLG_BTC) 
     var NLG_BTC = response_NLG_BTC 
     $('.NLG_BTC').append(NLG_BTC.result); 
     }) 
     .catch(function(err) { 
     console.error(err); 
     }) 
    }); 
+0

"_i도 꽤 어렵거나 내가 어떤 피드백 anywhere_이 없기 때문에 디버깅 실제로 불가능 찾기"문제를 해결하는 데 도움이 될 수 ->는 [개발자 도구]를 확인 (http://stackoverflow.com/question/988363/how-can-i-debug-my-javascript-code) 콘솔에서 [문제] (https://en.wikipedia.org/wiki/Same-origin_policy)를 알려줍니다. – Andreas

답변

0

시도를 확인합니다. Firefox와 Chrome에서는 보내고받은 모든 요청을 모니터링 할 수 있습니다. 이렇게하면 모든 요청 헤더를 볼 수있을뿐만 아니라 서버가 정확히 무엇을 반환 했는지도 알 수 있습니다.

Firefox에서는 Ctrl-Shft-K를 누른 다음 네트워크 탭을 클릭하고 평소처럼 페이지를로드하십시오. 원하는 요청을보십시오. 표시되면 클릭하고 모든 정보가 오른쪽의 작은 창에 표시됩니다.

내 생각 엔 쿼리 문자열에 문제가있는 것 같습니다 (예 : '?'가 자동으로 이스케이프 처리됨). 이것은 "Params"탭에 표시됩니다.

1

자바 스크립트가 여기에 최고의 디버깅 도구가되지 않을 수 있습니다 오류가 발생하는 경우 귀하의 요청에 캐치 절을 추가

+0

아 작동 그것은 CasperSL이 말했듯이 : Cross-Origin Request Blocked : 같은 원산지 정책은 https://bittrex.com/api/v1.1/public/getticker?market=BTC-NLG에서 원격 리소스를 읽을 수 없습니다. (이유 : CORS 헤더 'Access-Control-Allow-Origin'누락). 이상하게도, 다른 것은 작동하므로 Bittrex에서 차단합니다. 하지만 일부 Python을 사용하고 파일에 저장된 값을로드하는 것으로 해결하기가 쉽습니다 ... – Freek

1

나는 귀하의 페이지가 아닌 다른 도메인으로 XMLHttpRequest을 (를) 보내려고합니다. 브라우저가 보안상의 이유로 같은 출처에서 요청을 허용하므로 브라우저가이를 차단합니다.

https://www.codeschool.com/discuss/t/how-to-solve-no-access-control-allow-origin-header-is-present-on-the-requested-resource-origin-null-is-therefore-not-allowed-access-in-angular-js/28989

+0

나는 거기에서 제안 된 해결책을 정말로 보지 못하지만 나는 js에서 꽤 멍청하다. 내가 일을 끝내면 아프다. – Freek

+0

그러면 브라우저가 특정 요청을 차단하고 다른 요청을 차단하지 않는 이유는 무엇입니까? – Freek

+0

도메인 https/http가 다를 수 있습니다. 로컬에서 실행하려고합니다. – CasperSL