我有一个ionic应用,当我向本地主机发出POST或GET请求时,它可以在ionic serve下正常工作,但是当我进行ionic build android然后ionic run android时,我总是得到一个404 POST未找到的错误。我尝试了几乎所有方法。我已经添加了白名单插件并放入了我的config.xml文件中。
在index.html中,我尝试了这些meta标签(取消注释其中一个并注释掉另一个)。
在app.js的开头,我有以下配置:
注释中的URL都是我尝试过的选项:我使用ifconfig获取了它们,当我的手机需要时,我在电脑上禁用了WiFi并使用了手机的连接USB(因此在ifconfig中IP是usb0)。我还尝试了在app.js中使用端口转发在chrome://inspect/#devices上列出的URL "http://localhost:1337"(通过将设备的端口1337分配给计算机的localhost:1337)。对于在我的文件app.js中列出的URL,我禁用了端口转发。但所有配置都会出现POST 404未找到错误。有什么想法吗?
<content src="index.html"/>
<access origin="*"/>
<allow-intent href="*"/>
<allow-navigation href="*"/>
在index.html中,我尝试了这些meta标签(取消注释其中一个并注释掉另一个)。
<!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self'> -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' * ws://localhost:35729 data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *;script-src 'self' localhost:35729 'unsafe-eval' 'unsafe-inline';">
我使用Sails作为后端,我认为跨域资源共享已经很好地配置了:
module.exports.cors = {
/***************************************************************************
* *
* Allow CORS on all routes by default? If not, you must enable CORS on a *
* per-route basis by either adding a "cors" configuration object to the *
* route config, or setting "cors:true" in the route config to use the *
* default settings below. *
* *
***************************************************************************/
allRoutes: true,
/***************************************************************************
* *
* Which domains which are allowed CORS access? This can be a *
* comma-delimited list of hosts (beginning with http:// or https://) or *
* "*" to allow all domains CORS access. *
* *
***************************************************************************/
origin: '*',
/***************************************************************************
* *
* Allow cookies to be shared for CORS requests? *
* *
***************************************************************************/
credentials: true,
/***************************************************************************
* *
* Which methods should be allowed for CORS requests? This is only used in *
* response to preflight requests (see article linked above for more info) *
* *
***************************************************************************/
methods: 'GET, POST, PUT, DELETE, OPTIONS, HEAD',
/***************************************************************************
* *
* Which headers should be allowed for CORS requests? This is only used in *
* response to preflight requests. *
* *
***************************************************************************/
headers: 'content-type, access-control-allow-origin, authorization'
在app.js的开头,我有以下配置:
};
angular
.module('frontend', [
'ionic', 'ionic.service.core',
'frontend.core',
'ionic.service.analytics',
//'cacheapp',
//'cachemodule',
'ionic-cache-src',
'formlyIonic',
'pascalprecht.translate',
'angularMoment',
'ionic.components',
'ngFacebook',
'translate.app',
'translate.form',
'angular-cache',
'ngCordova',
'gettext',
'module.user',
'module.gallery'
])
.constant('AccessLevels',{
anon: 0,
user: 1,
admin: 2
})
.constant('BackendConfig',{
url: "http://api-test-dev.com:1337",
//url: "http://ip_of_my_phone:1337"
//url: "10.0.2.2"
//url: "10.0.2.2:1337"
//url:"http://ip_of_my_phone"
//url:"http://ip_of_my_wifi"
//url:"http://ip_of_my_wifi:1337"
})
注释中的URL都是我尝试过的选项:我使用ifconfig获取了它们,当我的手机需要时,我在电脑上禁用了WiFi并使用了手机的连接USB(因此在ifconfig中IP是usb0)。我还尝试了在app.js中使用端口转发在chrome://inspect/#devices上列出的URL "http://localhost:1337"(通过将设备的端口1337分配给计算机的localhost:1337)。对于在我的文件app.js中列出的URL,我禁用了端口转发。但所有配置都会出现POST 404未找到错误。有什么想法吗?