这是我在github上的第一个关于ionic2的项目:
https://github.com/eshk12/firstApp/tree/API-inserted
getCurrency();
上有一个函数network.ts
,用于从API服务器提取JSON数据,
第一个api url是:http://api.fixer.io/latest?base=CAD
在移动设备上,get请求返回404错误,如下所示。
所以我认为api有来自应用程序等的请求的安全性,所以我写了获取它的数据的php脚本:
http://build-net.co.il/apps/currency/currency.php?base=USD
并在代码中更改它,我已重新安装应用程序,但仍然从我的服务器获得404错误代码。
当我构建应用程序并在离子引擎上进行测试时,"离子服务" 一切顺利,但是当我将项目编译成" .apk"(idk about ios)文件时,出现了这个错误(我使用了chrome检查器来解决问题):
main.js:27 function fired!
http://build-net.co.il/apps/currency/currency.php?base=USD Failed to load resource: the server responded with a status of 404 (Not Found)
main.js:5 EXCEPTION: Uncaught (in promise): Response with status: 404 Not Found for URL: http://build-net.co.il/apps/currency/currency.php?base=USDt.handleError @ main.js:5
main.js:5 ORIGINAL STACKTRACE:t.handleError @ main.js:5
main.js:5 Error: Uncaught (in promise): Response with status: 404 Not Found for URL: http://build-net.co.il/apps/currency/currency.php?base=USD
at s (polyfills.js:3)
at s (polyfills.js:3)
at polyfills.js:3
at t.invokeTask (polyfills.js:3)
at Object.onInvokeTask (main.js:7)
at t.invokeTask (polyfills.js:3)
at e.runTask (polyfills.js:3)
at i (polyfills.js:3)
at XMLHttpRequest.invoke (polyfills.js:3)t.handleError @ main.js:5
polyfills.js:3 Unhandled Promise rejection: e ; Zone: angular ; Task: Promise.then ; Value: e undefinedo @ polyfills.js:3
polyfills.js:3 Error: Uncaught (in promise): Response with status: 404 Not Found for URL: http://build-net.co.il/apps/currency/currency.php?base=USD(…)o @ polyfills.js:3
我希望你们能解决这个问题,
答案 0 :(得分:1)
主要更改[...] - 现在通过提供白名单功能 插件(CB-7747)白名单已经增强,更安全 现在支持可配置的Content-Security-Policy设置 框架(请参阅插件自述文件中的详细信息)您将需要添加 新的cordova-plugin-whitelist插件遗留白名单行为是 仍可通过插件获得(虽然不推荐)。
我安装了Cordova Whitelist plugin.并添加了:
<allow-navigation href="http://*/*" />
进入config.xml
档案。