我使用的是AngularJS 1.3和CodeIgniter 3.0。
我成功在localhost中从php获取数据。 但是我有错误“Cross-origin-request blocked”。 我不知道,但这是一个搜索,请帮助我。
的Javascript
var module = angular.module('app', ['onsen']);
module.config(function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
module.controller('MasterController', function($scope, $http) {
$scope.doLogin = function() {
var postData = {"email": "aaa@bbb.ccc", "password": "pass"};
var url = 'http://example/test?callback=JSON_CALLBACK';
//This section is Error
$http.post(url, postData, {withCredentials: true})
.success(function(data, status, headers, config) {
//
}).error(function(data, status, headers, config) {
//
});
//This section is Success
$http.get(url).success(function(data, status, headers, config) {
//
}).error(function(data, status, headers, config) {
//
});
};
});
我尝试了“$ http({url~})”,但结果相同。
PHP
public function index() {
$input_data = json_decode(trim(file_get_contents('php://input')), true);
$this->output
->set_header("Access-Control-Allow-Origin: *")
->set_header("Access-Control-Expose-Headers: Access-Control-Allow-Origin")
->set_content_type('application/json')
->set_output(json_encode($input_data));
}
答案 0 :(得分:0)
尝试使用.htaccess
来允许CORS。把它放在你的服务器.htaccess文件
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
答案 1 :(得分:0)
即使访问不同的端口被浏览器视为跨域操作,到目前为止,如何启用CORS的最佳指南可以在此处找到http://enable-cors.org/