복붙노트

[RUBY-ON-RAILS] CORS - JSONP없이 도메인 간 AJAX 기원 서버를 허용함으로써

RUBY-ON-RAILS

CORS - JSONP없이 도메인 간 AJAX 기원 서버를 허용함으로써

내 백엔드 API에 크로스 도메인 호출을 시도하는 EmberJS 하나, 동일한 서버에 두 개의 별도의 응용 프로그램을 가지고있다.

나는 특정 원점에서 크로스 도메인 요청을 허용하도록 내 백엔드 API를 설정합니다. 그러나, 이러한 셋업과 JSONP를 사용하지 않도록하는 방법이 있나요? 그들도 전송하기 전에 $ 아약스는 크로스 도메인 요청을 차단하고 있습니다. 그렇지 않다면, 내가 JS 프런트 엔드 소스의 요청을 수락하기 위해 구현 한 서버 측 CORS의 포인트는 무엇인가?

편집하다

AJAX 요청 :

$.ajax({
    url: "api.lvh.me:3000/accounts/login",
    data: cred,
    type: "POST",
    xhrFields: {
        withCredentials: true
    },
    success: function(response){
        alert('succeeded!');
        console.log(response);
        alert(response);
    },
    failure: function(message){
        alert("failed");
        console.log(message);
        alert(message);
    }
});

해결법

  1. ==============================

    1.당신이 CORS를 사용하도록 설정하면 JSONP를 사용할 필요가 없습니다.

    당신이 CORS를 사용하도록 설정하면 JSONP를 사용할 필요가 없습니다.

    Access-Control-Allow-Origin: http://www.example.com
    

    이 헤더는 응답으로 설정되어있는 경우는 동일한 도메인과 같은 경우로, 다음 일반 XMLHttpRequest의 응답에 액세스 할 수있을 것이다. 이 헤더가 올바르게 설정되어 있는지 확인합니다.

    나는 왜 jQuery를 사용하면 일반 자바 스크립트에서 JQuery와 CORS POST 요청의 작품을 사용하는 경우이 링크가 도움이 될 수 있기를 바랍니다,하지만?

    최신 정보: 예

    var xmlhttp= new XMLHttpRequest();
    var url="https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=en-US&redirectslug=HTTP_access_control";
    xmlhttp.open("GET",url,false);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    xmlhttp.send();
    

    모든 도메인이 시도, 당신은 응답을 얻을 것이다.

    업데이트 솔루션 :

    "HTTP : //"없이 요청 URL 붙이는, 문제의 원인에 "http : //"문제를 해결

  2. ==============================

    2.당신은 모든 URL을 허용하도록 설정하기 위해, 레일 5 랙 고르를 사용할 수 있습니다.

    당신은 모든 URL을 허용하도록 설정하기 위해, 레일 5 랙 고르를 사용할 수 있습니다.

    Rails.application.config.middleware.insert_before 0, Rack::Cors do
      allow do
        origins '*'
        resource '*', headers: :any, methods: [
          :get, :post, :put, :patch, :delete, :options, :head
        ]
      end
    end
    
  3. ==============================

    3.크로스 도메인 환경에서 I는 크로스 도메인 CORS를 지원하지 않는 많은 무료 호스트 becase JSONP 대신 CORS를 사용하는 것이 좋습니다. 그것은 예를 작업에 자세히 설명되어 있습니다 - 모두 JSONP와 CORS.

    크로스 도메인 환경에서 I는 크로스 도메인 CORS를 지원하지 않는 많은 무료 호스트 becase JSONP 대신 CORS를 사용하는 것이 좋습니다. 그것은 예를 작업에 자세히 설명되어 있습니다 - 모두 JSONP와 CORS.

  4. from https://stackoverflow.com/questions/17318426/cors-cross-domain-ajax-without-jsonp-by-allowing-origin-on-server by cc-by-sa and MIT license