복붙노트

[JQUERY] 없음 '액세스 제어 - - 원산지를 허용'헤더가 요청 된 리소스 오류에 존재

JQUERY

없음 '액세스 제어 - - 원산지를 허용'헤더가 요청 된 리소스 오류에 존재

해결법


  1. 1.크롬 문제를 참조 -이 힘 가능성이 크롬 액세스 제어 - 허용 - 원산지 통해 갈 localhost를 지원하지 않는 될 생각

    크롬 문제를 참조 -이 힘 가능성이 크롬 액세스 제어 - 허용 - 원산지 통해 갈 localhost를 지원하지 않는 될 생각

    크롬 그냥 같은 몇 가지 다른 도메인에 당신의 / etc / hosts 파일에서 로컬 호스트 별칭 헤더에 액세스 제어 - 허용 - 원산지를 보내려면 :

    127.0.0.1   localhost yourdomain.com
    

    당신이 yourdomain.com localhost 대신 사용하여 스크립트에 액세스하는 것 그런 경우, 호출이 성공해야합니다.


  2. 2.Google 크롬 브라우저를 사용하는 경우는 확장자가 해킹 수 있습니다.

    Google 크롬 브라우저를 사용하는 경우는 확장자가 해킹 수 있습니다.

    당신은 당신의 응용 프로그램에서 즉시 CORS 헤더를 수정하는 크롬 확장 프로그램을 찾을 수 있습니다. 분명히, 이것은 크롬이 아니라,하지만 난 모든 어디서나 제로 변경에 맞는지 좋아한다.

    (모든 제품에서 작동하는 경우) 당신은 로컬 컴퓨터에 응용 프로그램을 디버깅을 위해 사용할 수 있습니다.

    주의: URL 확장자 이름을 깨진 될 경우 액세스 제어 - 허용 - 원산지이다 : *. 나는 당신이 당신의 물건에 작동하지 않는 경우, 예를 들어, 유튜브가이 확장 작동하지 않습니다, 때문에,이 확장을 비활성화하는 것이 좋습니다.


  3. 3.이 시도 - 다음과 같이 헤더를 설정하여 설정 Ajax 호출을 :

    이 시도 - 다음과 같이 헤더를 설정하여 설정 Ajax 호출을 :

    var uri = "http://localhost:50869/odata/mydatafeeds"
    $.ajax({
        url: uri,
        beforeSend: function (request) {
            request.setRequestHeader("Authorization", "Negotiate");
        },
        async: true,
        success: function (data) {
            alert(JSON.stringify(data));
        },
        error: function (xhr, textStatus, errorMessage) {
            alert(errorMessage);
        }                
    });
    

    그런 다음 명령 줄에 크롬을 열어 코드를 실행합니다 :

    chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
    

  4. 4.그냥 참고로, 나는이 문제에 적용 믿는 jQuery를 문서에서이 정보를 발견 :

    그냥 참고로, 나는이 문제에 적용 믿는 jQuery를 문서에서이 정보를 발견 :

    @thanix 같은 호스트 파일을 변경하면 나를 위해 작동하지만 @dkruchok에 의해 언급 된 확장은 문제를 해결하지 않았다.


  5. 5.크롬의 왜 우리가이 오류를 받고 있는지, 당신은 두 개의 서로 다른 로컬 호스트를 통합 할 수 없습니다. 당신은 당신의 WebApiConfig.cs 파일에 WebApi 프로젝트의 코드의 두 줄을 추가 nuget manager.And에서의 Microsoft Visual Studio 웹 API 핵심 패키지를 포함해야합니다.

    크롬의 왜 우리가이 오류를 받고 있는지, 당신은 두 개의 서로 다른 로컬 호스트를 통합 할 수 없습니다. 당신은 당신의 WebApiConfig.cs 파일에 WebApi 프로젝트의 코드의 두 줄을 추가 nuget manager.And에서의 Microsoft Visual Studio 웹 API 핵심 패키지를 포함해야합니다.

    var cors = new EnableCorsAttribute("*", "*", "*");
    config.EnableCors(cors);
    

    그리고 모두 다.


  6. 6.그 호출 스프링 부팅 서비스의 경우. 당신은 코드 아래 사용하여 처리 할 수 ​​있습니다.

    그 호출 스프링 부팅 서비스의 경우. 당신은 코드 아래 사용하여 처리 할 수 ​​있습니다.

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedOrigins("*")
                        .allowedMethods("GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS")
                        .allowedHeaders("*", "Access-Control-Allow-Headers", "origin", "Content-type", "accept", "x-requested-with", "x-requested-by") //What is this for?
                        .allowCredentials(true);
            }
        };
    }
    

  7. 7.생산은 더 나은 위해 개발을 위해 당신은 당신의 자신의 프록시를 설정, https://cors-anywhere.herokuapp.com을 사용할 수 있습니다

    생산은 더 나은 위해 개발을 위해 당신은 당신의 자신의 프록시를 설정, https://cors-anywhere.herokuapp.com을 사용할 수 있습니다

    비동기 판독 함수 () { https://cors-anywhere.herokuapp.com/http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http:// '(await를 가져 오기 (R = await를하자 feeds.feedburner.com/mathrubhumi ')) JSON ().; CONSOLE.LOG (R); } 읽다();


  8. 8.크롬 78 훌륭한 고르 차단 해제 작품 [고르 UNB] [1] https://chrome.google.com/webstore/detail/cors-unblock/lfhmikememgdcahcdlaciloancbhjino

    크롬 78 훌륭한 고르 차단 해제 작품 [고르 UNB] [1] https://chrome.google.com/webstore/detail/cors-unblock/lfhmikememgdcahcdlaciloancbhjino

    그것은 구글 크롬에 대한 플러그인이 "고르 차단 해제"라는입니다

    요약: 활성화 된 경우 로컬 및 원격 웹 요청에 헤더 : '* 액세스 제어 - 허용 - 원산지'를 추가하여 더 이상 CORS 오류가 없습니다

    이 확장은 XMLHttpRequest의 통제를 제공하고, "액세스 제어가-기원 허용"과 "액세스 제어를--방법 허용"브라우저가 모든 요청에 ​​헤더를 수신하는 사용자 정의를 제공 방법을 가져. 사용자는 도구 모음 단추에서 ON과 OFF 확장을 전환 할 수 있습니다. 이러한 헤더가 변경되는 방법을 수정하려면 오른쪽 클릭 컨텍스트 메뉴 항목을 사용합니다. 당신은 허용되는 방법을 사용자 정의 할 수 있습니다. 기본 옵션은 'GET', 'PUT'을 허용하는 것입니다, 'POST', 'HEAD', '옵션', '패치'방법을 '삭제'. 또한 서버가 이미 채워 때이 헤더를 덮어 쓰지 않도록 연장을 요청할 수 있습니다.


  9. 9.물론, 다른 방법이 사용 고르 프록시는, 당신은 단지 https://cors-anywhere.herokuapp.com/http처럼 될 것이다 URL.so 당신의 URL 전에 https://cors-anywhere.herokuapp.com/를 추가 할 필요가 : //ajax.googleapis.com/ajax/services/feed/load.

    물론, 다른 방법이 사용 고르 프록시는, 당신은 단지 https://cors-anywhere.herokuapp.com/http처럼 될 것이다 URL.so 당신의 URL 전에 https://cors-anywhere.herokuapp.com/를 추가 할 필요가 : //ajax.googleapis.com/ajax/services/feed/load.

    프록시 서버는 위의 URL에서 http://ajax.googleapis.com/ajax/services/feed/load를받습니다. 그런 다음 해당 서버의 응답을 얻을 수있는 요청합니다. 그리고 마지막으로, 프록시가 적용되는

    원래의 응답.

    그것은 개발과 생산 모두에서 작동하기 때문에이 솔루션은 중대하다. 요약하면, 당신은 동일 출처 정책은 브라우저와 서버 간 통신에서 구현된다는 사실을 활용하고 있습니다. 어떤 수단는 서버 간 통신에 적용 할 필요가 없습니다!

    당신은 CORS 오류를 수정하기 위해 더 많은 보통 3 가지 방법에 여기에 솔루션에 대해 읽을 수 있습니다


  10. 10.크롬 오류에 대한 해결책으로 봄 부팅 컨트롤러 (중 클래스 수준 또는 메서드 수준)에 backendside에 @CrossOrigin 사용하십시오 '없음'액세스 제어 - - 원산지를 허용 '헤더가 요청 된 자원에 존재합니다.'

    크롬 오류에 대한 해결책으로 봄 부팅 컨트롤러 (중 클래스 수준 또는 메서드 수준)에 backendside에 @CrossOrigin 사용하십시오 '없음'액세스 제어 - - 원산지를 허용 '헤더가 요청 된 자원에 존재합니다.'

    이 솔루션은 나를 100 %를 위해 노력하고 있습니다 ...

    @CrossOrigin
    @Controller
    public class UploadController {
    

    ----- 또는 -------

    @CrossOrigin(origins = "http://localhost:3000", maxAge = 3600)
    @RequestMapping(value = "/loadAllCars")
        @ResponseBody
        public List<Car> loadAllCars() {
    
    
    Ref: https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
    
  11. from https://stackoverflow.com/questions/28547288/no-access-control-allow-origin-header-is-present-on-the-requested-resource-err by cc-by-sa and MIT license