2015-10-30 5 views
1

Я использую последнюю версию PhoneGap и делаю вызовы ajax.PhoneGap Запрос AJAX не работает

$.ajax({ 
      type  : 'POST', 
      url  : 'http://example.com/path to my API', 
      data  : {d1: v1, d2: v2}, 
      dataType : 'json', 
      success : function(data) { 
          console.log(data); 
         }, 
      error  : function(){ 
          alert('Error'); 
         } 
}); 

Когда я проверить мое приложение на рабочем столе браузера или мобильного PhoneGap Developer App, он отлично работает, но после построения приложения (.apk), AJAX запросы не работают и падают на провал, а не успех. Я сделал все конфигурации, упомянутых которые включают в себя:

<access origin="*" /> 
<plugin name="cordova-plugin-whitelist" version="1" /> 
    <allow-navigation href="*" /> 
    <allow-intent href="http://*/*" /> 
    <allow-intent href="https://*/*" /> 

Также добавлена ​​метой-тег Content-Security-политика в моем HTML и указал на домен, где находится мой API:

<meta http-equiv="Content-Security-Policy" content="connect-src 'self' http://example.com/"> 

Я использую PhoneGap онлайн-сервис для создания приложения. Мне действительно нужна помощь, так как я сделал все исправления, которые мог найти, но пока не удалось.

ответ

1

@Nabeel, Вашему счастью. Я сейчас заканчиваю a blog post on whitelist

Измените свой CSP следующим образом. Это должно сделать трюк

<meta http-equiv="Content-Security-Policy" 
      content="default-src *; 
        style-src 'self' 'unsafe-inline' 'unsafe-eval'; 
        script-src 'self' 'unsafe-inline' 'unsafe-eval';"> 

Если вы работаете с iOS9, вам нужно добавить что-то для компании Apple ATS. Подробнее читайте в документе, чтобы получить подробную информацию об этом.

Best of Luck

+0

Я удалил свой вышеупомянутый CSP и добавил ваш. Но все тот же вопрос. Работает отлично в браузере и приложении PhoneGap Developer, но не работает после создания .apk и запуска приложения. Запросы Ajax все еще падают на отказ. Незлая помощь. – Nabeel

+0

Конфигурация образца PhoneGap имеет <плагин name = "cordova-plugin-whitelist" version = "1" />. Поэтому у меня была такая же строка в моем файле config.xml. Изменение его на решена проблема для меня. – Nabeel

+0

@Nabeel, в вашем вопросе нет упоминания о том, что вы используете * Phonegap Build *. Пожалуйста, прочитайте [Топ Ошибки Разработчиков, новых для Кордовы/Телефонная книга] (https://github.com/jessemonroy650/top-phonegap-mistakes/blob/master/new-to-Phonegap.md) – JesseMonroy650

Смежные вопросы