문제

필요합니다 일시적으로 크로스 도메인 xmlhttprequest를 허용합니다. Firefox 보안 설정을 바꾸는 것은 갈 길인 것 같습니다. 그러나 나는 함께 시도했다 이것 그리고 이것 그러나 그들은 작동하지 않았습니다. 누군가 전에 이것을 구성 할 수 있었습니까? 감사.

도움이 되었습니까?

해결책

최신 브라우저의 경우 다음 접근 방식을 시도 할 수 있습니다.

https://developer.mozilla.org/en/http_access_control

요컨대, 다음을 다음에 추가해야합니다. SERVER 응답 헤더 (다음은 액세스 할 수 있습니다 ~에서 foo.example):

Access-Control-Allow-Origin: http://foo.example
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-PINGOTHER
Access-Control-Max-Age: 1728000

주목하십시오 X-PINGOTHER JavaScript에 의해 삽입되는 사용자 정의 헤더이며 사이트마다 다릅니다.

Ajax에서 사이트에 액세스하려면 사용하십시오. * 대신에.


편집하다:

내가 처음 질문에 대답했을 때 2009, 나는 실제로 같은 문제를 겪었고 서버 측 구성을 사용하여 주변에서 작업했습니다.

그때까지 FF 또는 Chrome에는 플러그인이 없었습니다.

그러나 이제 브라우저 사이드 플러그인을 사용하는 대안이 있습니다. 답변을 확인하십시오. tsds

다른 팁

앱의 개발 및 테스트 중에 도메인 크로스 도메인 문제에 시간을 낭비하고 싶지 않다면 Addon을 사용할 수 있습니다. 포스 코스 ff.

업데이트 :이 애드온은 더 이상 존재하지 않는 것 같습니다. 그러나 또 다른 옵션이 있습니다 크롬 확장

jQuery를 사용해 보셨습니까? Ajax 요구? 버전 1.3 기준 JQuery는 특정 유형의 크로스 도메인 AJAX 요청을 지원합니다.

위의 참조에서 인용 :

참고 : 모든 원격 (동일한 도메인이 아닌) 요청은 '스크립트'또는 'JSONP'가 데이터 유형 일 때 GET으로 지정해야합니다 (DOM 스크립트 태그를 사용하여 스크립트를로드하기 때문에). 이러한 요청에는 xmlhttprequest 객체가 필요한 ajax 옵션을 사용할 수 없습니다. 완전 및 성공 기능은 완성시 호출되지만 XHR 객체를받지 못합니다. BeforeSend 및 DataFilter 기능은 호출되지 않습니다.

jQuery 1.2 기준으로 JSONP 콜백을 지정하면 다른 도메인에있는 JSON 데이터를로드 할 수 있습니다. "myurl? 콜백 =?". jQuery는 자동으로 교체합니까? 통화 할 올바른 메소드 이름으로 지정된 콜백 호출. 또는 데이터 타입을 "JSONP"로 설정하면 콜백이 AJAX 요청에 자동으로 추가됩니다.

다음은 Cross-Domain xmlhttprequest를 "일시적으로"비활성화 할 수있는 방법이 없습니다. 일시적으로 비활성화 할 수 있다면 영구적으로 비활성화 할 수 있습니다. 이것은 현대의 Ajax 프로그래밍에서 다소 일반적인 문제이며 크로스 도메인 스크립팅으로 알려진 기술을 사용하여 가장 자주 해결됩니다.

여기서 아이디어는 크로스 도메인 스크립트를 호출하면 JavaScript (JSON) 결과를 반환하여 끝에있는 함수로 전달된다는 것입니다.

다음은 JavaScript 코드 관점에서 볼 수있는 방법을 설명하기위한 샘플 코드입니다.

  function request_some_data() {
    var s = "http://my.document.url.com/my_data?p1=v1&p2=v2&callback=myfunc";

      try {
        try{
          document.write("<scr"+"ipt type='text/javascript' src='"+s+"'></scr"+"ipt>");
        } 
        catch(e){
          var x = document.createElement("script");
          x.src = s;
          document.getElementsByTagName("head")[0].appendChild(x);
        }
      }
      catch (e) {
        alert(e.message);
      }
   }

그런 다음 데이터를 수신하고 서버에서 콜백 케이스를 "처리"하는 코드에서 함수를 정의하게됩니다. 다음은 클라이언트 측 JavaScript입니다.

function myfunc(data) {
  alert(data);
}

그리고 서버 측면에서, 나는 여기에 PHP 예제를 제공하지만 이것은 Java에서 또는 서버 측 기술이 다음과 같이 쉽게 수행 할 수 있습니다.

<?php
   if($_GET["callback"]) {
     print($_GET["callback"] . "(");
   }
   /* place your JSON object code/logic here */
   if($_GET["callback"]) {
     print(");");
   }
 ?>

서버 측에서 생성하는 것은 클라이언트 측에서 실행되는 JavaScript가됩니다.

나는 그 'Universalbrowswerread'를 사용하려고 시도했지만 작동하지 않았습니다. '허용'헤더를 추가 할 수는 있지만 실제로는 아직 시도하지 않았습니다. 꽤 새롭습니다.

더 많은 정보를 찾을 수 있습니다 여기

나는 이것에 직면하고있다 file://. 로컬 HTML 파일 (테스트 베드)에서 쿼리를 두 서버로 보내고 싶습니다.

이 특별한 경우는 안전 문제가되어서는 안되지만 사파리만이이를 허용합니다.

여기에 있습니다 최고의 토론 나는이 문제를 발견했다.

mod_proxy와 같은 것을 사용하는 것은 어떻습니까? 그런 다음 요청이 동일한 서버로 이동하는 것처럼 브라우저를 보지만 실제로는 다른 서버로 전달됩니다.

나는 피들러를 대리자로 사용했습니다. 바이올리니스트 LocalHost 통화를 외부 서버로 리디렉션합니다.

수동 프록시 (127.0.0.1 포트 8888)를 사용하도록 Firefox를 구성했습니다. Fiddler는 URL 필터를 사용하여 호출을 캡처하고 다른 서버로 리디렉션합니다.

크로스 도메인 허용 :

  1. 입력하다 about:config
  2. 조심하십시오
  3. 입력하다 security.fileuri.strict_origin_policy 검색 창에서
  4. 거짓으로 변경

이제 탭을 닫을 수 있습니다. 일반적으로 이제이 구성으로 크로스 도메인 요청을 만들 수 있습니다.

보다 여기 자세한 사항은.

Firefox에 대한 추가 기능을 확인할 수 있습니다. 최후의 Firefox 버전에서 도메인을 교차 할 수 있습니다. https://addons.mozilla.org/en-us/firefox/addon/cross-domain-cors/

Firefox의 설정을 수동으로 편집하는 것은 갈 길이지만 자주해야 할 때 불편합니다.

대신 한 번의 클릭으로 수행 할 애드온을 설치할 수 있습니다.

나는 사용한다 CORS everywhere, 그것은 나를 위해 잘 작동합니다.

여기에 있습니다 설치 프로그램에 대한 링크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top