Javascript ionic http POST在服务器上不工作
我有一个很大的问题,因为2天以来,我的应用程序以前在任何地方都使用相同的代码工作,现在如果我运行Javascript ionic http POST在服务器上不工作,javascript,php,angularjs,apache,.htaccess,Javascript,Php,Angularjs,Apache,.htaccess,我有一个很大的问题,因为2天以来,我的应用程序以前在任何地方都使用相同的代码工作,现在如果我运行ionic-serve命令并发出POST请求,我会遇到此错误: OPTIONS https://www.example.com/file.php net::ERR_EMPTY_RESPONSE(anonymous function) @ ionic.bundle.js:16185sendReq @ ionic.bundle.js:15979status.$get.serverRequest @ ion
ionic-serve
命令并发出POST请求,我会遇到此错误:
OPTIONS https://www.example.com/file.php net::ERR_EMPTY_RESPONSE(anonymous function) @
ionic.bundle.js:16185sendReq @
ionic.bundle.js:15979status.$get.serverRequest @
ionic.bundle.js:15712deferred.promise.then.wrappedCallback @
ionic.bundle.js:19197deferred.promise.then.wrappedCallback @
ionic.bundle.js:19197(anonymous function) @
ionic.bundle.js:19283promises.$get.Scope.$eval @
ionic.bundle.js:20326promises.$get.Scope.$digest @
ionic.bundle.js:20138promises.$get.Scope.$apply @
ionic.bundle.js:20430(anonymous function) @
ionic.bundle.js:26763(anonymous function) @
ionic.bundle.js:10478forEach @ ionic.bundle.js:7950eventHandler @
ionic.bundle.js:10477
如果我试着在iPhone、iPhone模拟器和android设备上运行这个应用程序,一切都很好。我在MAC OSX和Windows上使用了chrome,并启用了CORS插件。如果我切换到开发服务器(不是https,只是http),除了Android以外的所有设备都会出现相同的错误。
我试图通过编辑
.htaccess
文件来启用apache服务器中的CORS,方法是添加以下内容:头集访问控制允许源“*”
,但它解决不了任何问题。请给我一些想法
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$response = array(
'LoginResult' => array(
'Authorized' => TRUE,
'FormOpen' => TRUE,
),
);
echo json_encode($response);
exit;
下面是一些用于Ionic应用程序的PHP代码(服务器端)
if (authObject == undefined) {
authObject = {};
}
$http({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method: "POST",
url: LoginUrl,
data: authObject
}).success(function (data) {
if (data.LoginResult && data.LoginResult.Authorized) {
// The login was successfull, save the authObject.
$localStorage.currentUser = authObject;
// deferred.resolve('Welcome ' + authObject.UserName + '!');
}
else {
// deferred.reject('Wrong credentials.');
}
}).error(function (data, status, headers, config) {
// deferred.reject(data, status);
});
这是离子电话
希望有帮助,我不知道你是否可以访问服务器端。这肯定是一个CORS问题,我通过切换到safari暂时解决了(我现在可以在浏览器上开发),转到开发>禁用交叉源-限制。显然,chrome上的CORS附加组件未能禁用CORS限制。我希望我能帮助其他开发者