在离子移动应用程序上获取请求错误404

时间:2016-10-29 18:45:34

标签: angular ionic2

这是我在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

我希望你们能解决这个问题,

1 个答案:

答案 0 :(得分:1)

在我对这个问题做了一些研究之后,我找到了解决方案。 根据Cordova更新4.0.0

  

主要更改[...] - 现在通过提供白名单功能   插件(CB-7747)白名单已经增强,更安全   现在支持可配置的Content-Security-Policy设置   框架(请参阅插件自述文件中的详细信息)您将需要添加   新的cordova-plugin-whitelist插件遗留白名单行为是   仍可通过插件获得(虽然不推荐)。

我安装了Cordova Whitelist plugin.并添加了:

<allow-navigation href="http://*/*" />

进入config.xml档案。