source

서버에서 도메인 간 요청을 활성화하는 방법은?

lovecheck 2023. 10. 9. 23:22
반응형

서버에서 도메인 간 요청을 활성화하는 방법은?

서버에 json 파일을 호스팅하고 있습니다.json 파일에 Ajax "GET" 요청을 하려고 하면 실패합니다.

Safari의 콘솔에서 "Failed to load resource"라고 표시됩니다.

파이어버그에 "200 OK"라고 표시되지만 응답이 나타나지 않습니다.Firebug도 JSON 탭을 표시하지 않습니다.

크로스 도메인 요청은 AJAX를 사용할 수 없기 때문이라고 생각합니다.

어떻게 극복할 수 있는지 알고 싶습니다.또한 서버에서 도메인 간 요청을 활성화하려면crossdomain.xml파일이나 무언가를 만들어야 합니다.확실하지는 않지만, 이것이 제가 아는 것입니다.구글에서 검색했지만 관련 링크를 찾을 수 없었습니다.

도움을 주시면 대단히 감사하겠습니다.

감사해요.

업데이트: 서버측 스크립팅 언어(PHP, ASP)를 사용하지 않습니다.NET 등).저는 Plain HTML과 JavaScript / jQuery를 사용하고 있습니다.

업데이트-2:

다음 코드를 사용하여 도메인 간 요청을 했습니다.

<script src="jquery-1.6.2.js"></script>
  <script>
  $(document).ready(function () {
    $.ajax({
      dataType: 'jsonp',
      data: '',
      jsonp: 'jsonp_callback',
      url: 'http://myhosting.net/myjsonfile.json',
      success: function (jsonData) {
        alert("success")
        alert(jsonData);
      },
      error: function(errorObj) {
        alert(errorObj.statusText);

      },
    });
});

Firebug의 "Net" 탭을 보면 JSON 탭이 보이고 json 응답이 보입니다.그러나 "성공" 콜백 핸들러가 호출되지는 않지만 "오류" 콜백 핸들러가 호출되고 다음과 같은 경고 메시지가 표시됩니다.parseerror.

뭐가 잘못됐는지 알아요?

Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com

대상 서버에서

php:

 header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");

서버 scripting 언어를 사용하지 않을 경우: (linux) 콘솔에 입력

a2enmod headers

.htaccess 파일에 추가합니다.

Header set Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com

당신의 .htaccess에 이것을 넣고 평범한 ajax가 작동합니다.

<ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
</ifModule>

genesis에 의해 주어진 해결책은 나에게 효과가 있었지만, 나는 url의 후행 슬래시를 생략해야만 했습니다.즉:

header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");

언급URL : https://stackoverflow.com/questions/6871021/how-to-enable-cross-domain-request-on-the-server

반응형