2015-12-01 2 views
-2

захватывая файлы JSon из Reddit, я получил этот код, чтобы работать в совершенно нормально в Chrome:

function load(params){ 
    alert("test1") 
    params = params || {}; 
    var container = $('#subreddit-content') 
    $.getJSON("http://www.reddit.com/.json?jsonp=?", params, function(data){ 
     alert("test2") 
     var children = data.data.children; 
     $.each(data.data.children, function(i,item){ 
     ... 
} 
load(); 

Однако, когда я упаковать его с PhoneGap никакой информации не получает, и только первое предупреждающее сообщение могло пройти.

В поисках часов основное упоминание о решении - это белый список, так как PhoneGap контролирует, к каким URL-адресам приложение может получить доступ. Я не пробовал белый список все возможную вещь с этим в моем файле config.xml будет по-прежнему не повез:

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

Что было взято отсюда: https://github.com/apache/cordova-plugin-whitelist

Я также работаю <preference name="phonegap-version" value="cli-5.2.0" />, если это делает никакой разницы ,

Я буду любить вас навсегда того, кто может мне помочь. Это единственное, что не работает в моем коде.

+0

Возможный дубликат [Will $ .getJSON работает с конструкцией PhoneGap?] (Http://stackoverflow.com/questions/34032873/will-getjson-work-with-phonegap-build) – jcesarmobile

ответ

1

Вам необходимо настроить метатег политики безопасности контента в вашем документе index.html, чтобы разрешить PhoneGap достигать www.reddit.com. Попробуйте что-нибудь подобное в голове вашего index.html документа:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://www.reddit.com"> 

При работе с прошивкой 9, вам также могут понадобиться настроить исключение App Transport Security в вашем -Info.plist файла. Вы бы сделать это, добавив в этот файл:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>www.reddit.com</key> 
     <dict> 
     <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
     <true/> 
    </dict> 
    </dict> 
</dict> 

Новые версии Кордова/PhoneGap (5.4 на я думаю) будет делать это для вас на основе белого списка параметров в config.xml

Там в подробное сообщение в блоге here, в котором описывается, как настроить политику безопасности контента и безопасность приложений на транспорте.

+0

Пробовал CSP в своем HTML, но что просто не работает в моем браузере: s Разработка для android btw Извините, забыл упомянуть – YikesItsMikes

+1

Исправлена ​​опечатка в моем CSP reffit.com -> reddit.com. У вас есть пример полного URL-адреса с параметрами, замененными реальными значениями, которые вы пытаетесь подключить, например. что происходит? в 'https: //www.reddit.com/.json? jsonp =?' –

+0

Ха-ха, я видел опечатку и исправил ее, когда я ее вставил. У меня есть рабочая версия здесь http://michaeltruong.ca/rslash, если вы хотите увидеть полный javascript – YikesItsMikes

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