2012-06-01 2 views
-2

:Ajax 요청이 실패하는 이유는 무엇입니까? 내 코드 다음

$('#btnOK').click(function(e){ 
     e.preventDefault(); 
     $form = $('#testForm'); 
     dataString = $form.serialize(); 
     $.ajax({ 
      type: "POST", 
      url: 'https://abc.com/login', 
      data: dataString, 
      dataType: 'xml', 
      success: function(returnData) { 
       alert(returnData); 
      } 
     }); 
    }); 

내 코드는 http://abc.com/login 페이지로 아약스 요청을하려면 실패하고 그 결과를 제공하지 않습니다. 여기에 무슨 실수가 있니?

때문에 가능성이 크로스 도메인에인가 :
내 도메인 : http://xyz.com
로그인 도메인 : http://abc.com/login

+1

오류 콘솔을 보면 오류의 정확한 원인을 알 수 있습니다. – archil

+2

자신 만의 질문에 답변했습니다. [동일한 출처 정책] (http://en.wikipedia.org/wiki/Same_origin_policy) –

+0

예, 교차 도메인 인 경우 보안상의 이유로 다른 도메인에 아약스 요청을 보낼 수 없습니다. – xdazz

답변

1

(실 거예요 CSRF 활성화 사이트 작업) 아약스 전화를 새소식으로 리디렉션하는 것입니다. 귀하의 데이터를 보내고 응답을 abc.com (예 :)에서받는 xyz.com 도메인의 ver side proxy. CURL 사용).

또는 abc.com 도메인의 제어에 있다면 당신이 보낼 수있는 적절한 헤더 (Access-Control-*은)) (교차 도메인은

1

내 도메인 : http://xyz.com 로그인 도메인 : http://abc.com/login

이것은 당신이 극복 할 수있는 크로스 도메인 문제입니다

  1. 프록시 귀하의 사이트에

  2. 에서

    JSONP 지원 abc.com 사이트

  3. 당신이 방금 다음, 게시하고, 폼 및 그 iframe이 폼의 목표 설정은 iframe을 만들 수있는 결과입니다주의를 해달라고하려면 당신의 abc.com 도메인이 크로스 출처 정책을 처리하도록 구성되지 않는 한 후 당신은 크로스 도메인 Ajax 호출

    솔루션을 만들 수 없습니다,

0

그냥가, 크롬 또는 즉, 디버거를 사용하여 클릭의 항목에 중단 점을 디버깅 통화가 가능합니다 함수를 실행 한 다음 단계별로 문제를 찾을 수 있습니다.

관련 문제