【发布时间】:2015-09-01 08:40:03
【问题描述】:
我正在使用 php codeigniter restful api 作为服务器端和客户端应用程序的离子框架开发应用程序, 我正在尝试将客户端应用程序与服务器 api 连接,但我遇到了以下问题
XMLHttpRequest cannot load http://localhost:90/mrk/index.php/MRKGeneral_api/user_login. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.
我在客户端使用了下面的代码,
$scope.signIn = function(form) {
if(form.$valid) {
var postData = { 'username' : $scope.authorization.username, 'password' : $scope.authorization.password };
$http({
url: "http://localhost:90/mrk/index.php/MRKGeneral_api/user_login", method: 'POST',
data: postData,
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}).then(function(result) {
if(result.status == 200) {
if(result.data.success) {
GeneralService.userType = result.data.usertype;
GeneralService.userData = result.data;
$scope.errormsg = result.data.message;
$state.go('/app/dashboard');
} else {
$scope.errormsg = result.data.message;
}
} else {
}
});
}
}
在我的服务器端,我也设置了如下标题,
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
$method = $_SERVER['REQUEST_METHOD'];
if($method == "OPTIONS") {
die();
}
但在请求的资源上仍然出现 No 'Access-Control-Allow-Origin' 标头。 Origin 'http://localhost:8100' 因此不允许访问。
【问题讨论】:
-
您是在网络服务器上运行它还是只是在本地运行?浏览器通常不会让本地文件加载本地文件,因为这违反了 CORS。
-
我正在使用本地 wamp 服务器运行 php 代码
-
在开发过程中,尝试禁用 Chrome 或您正在使用的浏览器的网络安全:forum.ionicframework.com/t/solved-cors-with-ionic/…
标签: javascript php angularjs codeigniter ionic-framework