2012-05-25 2 views
2

응용 프로그램을 로컬에서 개발 중이며 실제 서버에서 문제가 발생했습니다.jQuery AJAX 요청 오류 상태 0

jQuery와 함께 AJAX 요청을 제출하면 오류 status:0statusText: 'error'과 함께 오류가 발생합니다.

Chrome 관리자는 요청에 대한 응답 코드를 표시하지 않으며 단순히 실패했습니다.

내가 더 자세히 조사하면 모든 데이터가 전송되었고 PHP 파일이 실제로 처리되었음을 알게되었습니다. 예를 들어 아래 요청에서 사용자가 실제로 생성되었습니다. 잘못된 응답 코드는 다른 요청이 실행되지 못하도록합니다 ('성공적인'응답에 의존하기 때문에). 여기

var cct = $.cookie('ttc_csrf_cookie'); // csrf protection 
var sUrl = "<?= base_url(); ?>user/create/"; 
var serialized = { 
    name: me.name, 
    email: me.email, 
    oauth_provider: 'facebook', 
    oauth_uid: me.id, 
    ttc_csrf_token: cct 
}; 
$.ajax({ 
    url: sUrl, 
    type: "POST", 
    data: serialized, 
    error: function(someStuffHere) { 
      //* THIS CODE RUNS. SHOWS ERROR STATUS: 0 */ 
    }, 
    success: function(user_id) { 
     //******** THIS HERE NEVER RUNS ***********///  
    } 
}); 

및 대응 PHP 코드 :

public function create() { 
    if($this->input->post()) { 
     $user['name'] = $this->input->post('name'); 
     $user['email'] = $this->input->post('email'); 
     $user['oauth_provider'] = $this->input->post('oauth_provider'); 
     $user['oauth_uid'] = $this->input->post('oauth_uid'); 
     $user['last_activity'] = date('Y-m-d H:i:s'); 

     $user_id = $this->Users->create_user($user); 
     $this->session->set_userdata('user_id', $user_id); 
     echo $user_id; 
    } 
} 

이 두 단편은 단지 일례이다 여기

샘플 요청이다. 모든 AJAX 요청은 실시간 서버에서 작동하지 않습니다.

어떻게 될 수 있습니까? 감사!

업데이트 : 내가 범위를 좁히고 결과가 에코 될 때 문제가 발생합니다. 메아리를 주석 처리 할 때 오류가 발생하지 않습니다 (물론 결과가 전송되지 않습니다).

+0

아약스 호출에서 오류 필드를 제거하고 console.log에서 어떤 일이 발생하는지 확인하십시오 .... 오류가 정보를 제공 할 정도로 명확합니다 ...... –

+0

도메인이 동일합니까? 다른 도메인에서 webservice에 액세스하는 경우 crossDomain을 작성해야합니다. $ .ajax – dhinesh

+0

그래서 범위를 좁히고 결과가 echo'ing 될 때 문제가 발생합니다. 메아리를 주석 처리 할 때 오류가 발생하지 않습니다 (물론 결과가 전송되지 않습니다). –

답변

1

CodeIgniter에서 compress_output 옵션으로 문제가 발생했음을 나타냅니다. true로 설정하면 echo이 작동하지 않습니다. 도움을 청한 모든 분들께 감사드립니다!