我正在使用离子2.2.1和angularjs 1.6.1。我的后端使用node.js 6.9.2和koajs
我使用离子1创建了我的项目 离子启动myproject sidemenu
在调用我的API网址时,我一直找不到POST 404
我已经做了以下
安装cordova白名单 的 https://github.com/apache/cordova-plugin-whitelist
后端node.js
import Koa from 'koa';
const app = new Koa();
const koaBody = require('koa-body')();
const cors = require('kcors');
app.use(cors());
router.post('/loginUser', koaBody, async function (ctx, next) {
console.log("loginUser");
ctx.body = 'Cool POST';
});
router.get('/', koaBody, async function (ctx, next) {
ctx.body = 'Hello GET';
});
index.html(在index.html中添加或删除以下行也一样,并且根本没有帮助)
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' * data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *; frame-src 'self' https://cordova.apache.org">
如果直接将API网址(http://www.yourkeyhere.com:7272/)粘贴到浏览器中,我得到了正确的回复。因此,这不是服务器方面的问题。
POST总是404
$http({
method: 'POST',
url: 'http://www.yourkeyhere.com:7272/loginUser'
}).then(function successCallback(response) {
}, function errorCallback(response) {
});
GET ok
$http({
method: 'GET',
url: 'http://www.yourkeyhere.com:7272/'
}).then(function successCallback(response) {
}, function errorCallback(response) {
});
我在Chrome浏览器(离子服务)和iPhone(离子运行ios --device --consolelogs --serverlogs )中进行了测试
指向localhost服务器时,此问题不存在
我一直在搜索google和SO,但所有的解决方案根本不起作用。