2011-08-19 7 views
0

우선이 리소스를 사용하고 있습니다. 사용 중이며 2 년 동안 학습했습니다. 이것은 내가 진정으로 붙어있는 것처럼 내 첫 게시물입니다. ajax/jsonp를 통해 양식을 제출합니다. 이 스크립트를 로컬에서 실행하면 성공 코드가있는 도메인에서 응답을받습니다. 방금 브라우저에서 요청을 실행하면 응답 코드가 성공으로 돌아옵니다. 하지만 양식을 제출할 때 방화범은 서버에서 응답이없는 상태에서 200 OK를 빨간색으로 보냅니다. Safari가 리소스를로드하지 못했습니다 : 취소되었습니다. Cant는 오류에 대한 많은 문서를 찾았으므로 중단되었습니다. 나는 이것이 아마 프로가 읽는 것이 몹시 구역질 난다는 것을 알고있다. 그러나 이것은 모든 첫 번째 게시물이므로 어떤 지침도 감사하겠습니다! 온라인으로 두 가지 예가 있습니다 : http://www.yourlifeportal.com/register.php reCaptcha가있는 버전입니다. http://www.yourlifeportal.com/registerNew.php에는 reCaptcha가 없기 때문에 captcha를 추가하면 코드가 영향을받습니다. 내가 얼굴에 큰 박수를 보내면 그 사실을 알려줘. 고맙습니다!ajax jsonp request - no response

$.ajax({ 
     url: 'http://myURLonaDifferentDomain', 
     data:jQuery(frm).serialize(), 
     type: 'POST', 
     dataType: 'jsonp', 
     jsonp: 'jsonp', 
     crossDomain: true, 
     error: function (xmlHttpRequest, textStatus, errorThrown) { 
        if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0) 
      return; // it's not really an error 
    else 
       alert(xmlHttpRequest + ': ' + textStatus + ': ' + errorThrown); 
        }, 
     success: function(jsonp) { 
      // Response handling code goes here 
      console.log(json.response.responseCode + ': ' + json.response.response + ': ' + json.response.responseDescription); 

      if (json.response.responseCode == 10527) { 
      document.getElementById('errorScreen').style.display='block'; 
      $('#errorMsg').append('There was an error with your credit card transaction please go back and re-check your '); 

      } 
        if (json.response.responseDescription == "Registration was successful") { 

      window.location.replace("http://www.url.com/thankyou.php");    
      } 

     } 
         }); 


} 

답변

0

하하하. 도메인 간 스크립팅. 그것은 큰 문제입니다. 솔루션 here에 대해 읽어보십시오.

수정 나는이 질문을 다시 읽고, AJAX가 이미 교차 도메인에 대한 준비가되어 있음을 발견했다. 문제는 거의 확실하게 원격 웹 서버를 준비 할 필요가 없다는 것입니다. Firebug를 사용하고 Net 탭을 열고 특성 CORS 헤더에 대한 응답 헤더를 확인하십시오.

+0

나는 jsonP가 도메인 간 문제에 대한 해결책이라고 생각 했습니까? –

+0

이것은 응답 헤더에 대해 방화범이 끌었던 것입니다. 나는 실종 뭔가? 날짜 \t 2011년 (일) 8월 21일 그리니치 표준시 07시 15분 50초 서버 \t 아파치/2.2.8 (CentOS는) 내용 - 언어 \t EN-US 콘텐츠 길이 연결 \t 가까운 콘텐츠 - 타입 \t application/x-javascript; charset = UTF-8 –

+0

그래, CORS 헤더 ('Access-Control-Allow-Origin'처럼 보일 것입니다). 요청이 JSOP 요청처럼 보이는지 ('jsonp = xyz'와 같은 GET 인수가있을 것입니다) 응답이 적절하면 ('xyz (...)로 시작합니다.) – Malvolio