我已经搜索了这个错误背后的原因,过去几个小时无法解决。希望有人遇到同样的问题,并能够帮助解决问题。
我正在使用Ionic和Angular来创建一个简单的应用程序。我使用Ionics ionic serve 命令在本地运行,以设置一个简单的服务器。
我有一个简单的index.html页面,如下所示:
...
<body data-ng-controller="AppCtrl">
<ion-header-bar class="bar-balanced">
<h1 class="title ">Hello World!</h1>
</ion-header-bar>
<ion-content>
<h1>Some Content</h1>
</ion-content>
</body>
...
和一个已经多次迭代的app.js文件,并尝试了各种在线教程,最终得到:
var App = angular.module("App", ["ionic"]);
App.controller("AppCtrl", ["$scope", "$http" , AppCtrl]);
function AppCtrl($scope, $http) {
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
var request = $http({
method: 'post',
url: 'http://localhost:8100/php/login.php',
data: { "cat" : "henry" },
headers : {"Content-Type": 'application/x-www-form-urlencoded'}
}).success(function (data, status, headers, config) {
console.log(data);
}).error(function (data, status, headers, config) {
console.log("login.php failed");
});
};
我的问题:是我的帖子请求中出现“404 Not Found”错误。但是,当我更改为get请求时,它似乎回复PHP文件就好了。它是一个简单的回声“Hello World!” php文件。
此时,我们将非常感谢任何有用的信息。谢谢!
答案 0 :(得分:0)
我遇到了类似的问题,我这个网站帮助我理解了我的问题:
http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/
默认情况下:
jQuery 使用Content-Type传输数据: 的X WWW窗体-urlencoded。
AngularJS 使用Content-Type传输数据: 应用/ JSON。不幸的是,一些Web服务器语言,特别是PHP,没有 本地地反序列化。
我的解决方案是:
在我的.PHP中,我刚刚在我的内容中做了一个JSON_DECODE
$ data = json_decode(file_get_contents('php:// input'),true);