2016-07-14 34 views
0

私は新しいプロジェクトを開始し、リクエストのためのコードを追加しました。私のjsファイルは、次のようになります。コードバでAjaxリクエストを送信できません

(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. 
}; 
})(); 

しかし、それは全く動作しませんでした。常に "Not working"を返します。リクエストを送信するには他の方法を試しましたが、常にエラーが発生します。 お願いします。

答えて

0

デフォルトでは、Cordova 5.0は外部http要求をブロックします。

cordova-plugin-whitelistをプロジェクトに追加してみてください。

アプリを再構築しても問題は解決しません。 )

1あなたの応答サービスで飼い、次のセット:次のいずれかの操作を行います

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

2)設定ファイルに次の行を追加します - :さらにホワイトリストに)

<access origin="*" /> 

3、クロスオリジンリソース共有を有効にするには、corsフラグがtrueであることを確認してください。

$.support.cors=true; 

4)あなたはメイク要求の代わりに、AJAXのためthis $ .getJSONに従うことができます。

ご希望の場合はお手数ですが、

+0

回答ありがとうございますが、それでも動作しません。あなたが書きましたが何も変わりません。 – reagle

+0

あなたはajaxコール時に発生するエラーを複製できますか? – Naitik

+1

ajaxはステータス= 0のオブジェクトを返していましたが、問題ではありません。 私はこの問題を解決しました。私はプラグイン "cordova-HTTP"を使うことに決めました。それは私を助けました。どのようにその仕事がわかりませんが、それは動作します) とにかく助けてくれてありがとう – reagle

関連する問題