2016-10-01 2 views
0

RAILS API를 사용하고 있습니다.AJAX는 net :: ERR_CONNECTION_REFUSED를 반환합니다.

터미널에서 전화를 걸면 적절한 결과가 나타납니다. 이제 외부 응용 프로그램에서 해당 API 호출하려고합니다.

CURL : CURL 소개

curl -H 'Accept: application/vnd.marketplace.v1' http://api.market_place_api.dev:3000/users/1 

가 제대로 작동합니다.

이제 내 외부 파일이 코드는 다음과 같습니다

1234.html

<!DOCTYPE html> 
<html> 
    <head> 
     <title>API Testing</title> 
     <script src="https://code.jquery.com/jquery-2.2.4.min.js" crossorigin="anonymous"></script> 

     <script type="text/javascript"> 
      $.ajax({ 
       headers: { Accept : "application/vnd.marketplace.v1"}, 
       url: "http://api.market_place_api.dev:3000/users/1", 
       type: 'GET', 
       contentType: 'application/json', 
       data: { auth_token: "Vb6BQdPQNx9uD_wczkeW"}, 
       success: function (data) { 
        alert(JSON.stringify(data)); 
        $('div.jsonoutput').append(JSON.stringify(data)); 
       }, 
       error: function(){ 
        alert("Cannot get data"); 
       } 
      }); 
     </script> 
    </head> 

    <body> 
     <div><center><p><strong>API Request &amp; Response Testing</strong></p></center></div> 

     <div class="jsonoutput"></div> 

    </body> 
</html> 

답변

0

가이 줄을 추가 application_controller

컨트롤러 :

protect_from_forgery with: :exception, if: Proc.new { |c| c.request.format != 'application/json' } 
protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' } 

스크립트 :

<script type="text/javascript"> 
     $.ajax({ 
      url: "http://api.market_place_api.dev:3000/users/1", 
      type: 'GET', 
      contentType: 'application/json', 
      data: { auth_token: "Vb6BQdPQNx9uD_wczkeW"}, 
      success: function (data) { 
       alert(JSON.stringify(data)); 
       $('div.jsonoutput').append(JSON.stringify(data)); 
      }, 
      error: function(){ 
       alert("Cannot get data"); 
      } 
     }); 
    </script> 
관련 문제