离子型http POST不能在服务器上工作


ionic http POST not working on server

我有一个很大的麻烦,因为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 @
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只有http://dev.example.com/file.php),我得到同样的错误也在所有设备,但Android。我试图通过添加这个:Header set Access-Control-Allow-Origin "*"编辑.htaccess文件来启用CORS在我的apache服务器上,它没有解决任何问题。请给我一些建议。

header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$response = array(
    'LoginResult' => array(
      'Authorized' => TRUE,
      'FormOpen' => TRUE,
    ),
  );
echo json_encode($response);
exit;

这是一些工作的PHP代码(服务器端),我使用我的Ionic应用程序。

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);
    });

这是Ionic的呼叫。

希望有帮助,我不知道你是否有访问服务器端的权限

这绝对是一个CORS问题,我暂时解决了(我现在可以在浏览器上开发)通过切换到safari,去开发>禁用交叉原点-限制。显然,chrome上的CORS插件未能禁用CORS限制。希望对其他开发者有所帮助