2016-07-14 4 views
0

새 프로젝트를 시작하고 요청 코드를 추가했습니다. 내 js 파일은 다음과 같습니다.코드 바를 사용하여 아약스 요청을 보낼 수 없습니다.

(function() { 
"use strict"; 

document.addEventListener('deviceready', onDeviceReady.bind(this), false); 

function onDeviceReady() { 

    $.ajax({ 
     type: "GET", 
     url: "http://api.vk.com/method/database.getCountries?v=5.5&need_all=0", 
     crossDomain: true, 
     success: function (response) { 
      alert('Works!'); 
     }, 
     error: function (data) { 
      console.log(data); 
      alert('Not working!'); 
     } 
    }); 

    // Handle the Cordova pause and resume events 
    document.addEventListener('pause', onPause.bind(this), false); 
    document.addEventListener('resume', onResume.bind(this), false); 

    // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here. 
    var parentElement = document.getElementById('deviceready'); 
    var listeningElement = parentElement.querySelector('.listening'); 
    var receivedElement = parentElement.querySelector('.received'); 
    listeningElement.setAttribute('style', 'display:none;'); 
    receivedElement.setAttribute('style', 'display:block;'); 
}; 

function onPause() { 
    // TODO: This application has been suspended. Save application state here. 
}; 

function onResume() { 
    // TODO: This application has been reactivated. Restore application state here. 
}; 
})(); 

그러나 전혀 작동하지 않았습니다. 항상 "작동하지 않음"을 반환합니다. 요청을 보내는 다른 방법을 시도했지만 항상 오류가 발생합니다. 제발 도와주세요!

답변

0

기본적으로 Cordova 5.0은 외부 http 요청을 차단합니다.

cordova-plugin-whitelist을 프로젝트에 추가해보십시오.

그리고 앱을 다시 빌드하면 문제가 지속됩니다. 다음 중 하나를 수행합니다

1) 응답 서비스의 목자 다음 설정

: 파일을 config (설정)이 줄을 추가

header('Content-Type: application/json'); 
header('Access-Control-Allow-Origin: *'); 

2) - :

<access origin="*" /> 

3)를 추가로 화이트리스트에, cross origin 자원 공유를 사용하려면 cors 플래그가 true인지 확인하십시오.

$.support.cors=true; 

4) 당신은 메이크업 요청 대신 아약스에 대한 this $ .getJSON을 따를 수 있습니다.

희망이 있으면 도움이 될 것입니다.

+0

답변 주셔서 감사합니다.하지만 여전히 작동하지 않습니다. 나는 당신이 쓴이 조치를 취했고 아무것도 바뀌지 않았다. – reagle

+0

아약스 호출시 발생하는 오류를 복제 할 수 있습니까? – Naitik

+1

ajax가 status = 0 인 객체를 반환했지만 문제가되지 않습니다. 문제가 해결되었습니다. 나는 "cordova-HTTP"라는 플러그인을 사용하기로 결심했다. 어떻게 작동하는지 모르겠지만 작동) 어쨌든 도와 줘서 고마워. – reagle

관련 문제