我正在尝试从我的离子应用程序发送一封电子邮件,使用Ajax调用我上传到服务器上的PHP代码。
Ajax调用代码:
$scope.forget = function(){
$http({
method: 'POST',
url: 'server_name/mail.php',
data: { mailTo: 'name@gmail.com', msg: 'hello!', sub: 'hey' }
}).then(function successCallback(response) {
alert(response.value+"msg sent!");
},
function errorCallback(response) {
alert(response.value+"error with sending msg");
});
};
mail.php
<?php
$_SERVER["PHP_SELF"];
$to = $_POST["mailTo"];
$txt = $_POST["msg"];
$subject = $_POST["sub"];
$headers = "From: emailadd@gmail.com";
echo $subject;
$flgchk = mail ($to, $subject, $txt, $headers);
echo $flgchk;
if($flgchk){
echo "<script>alert('Thank you for submiting your Details..!')</script>";
}
else{
echo "<script>alert('Error Occured Please Resend Details..!')</script>";
}
?>
但是我无法发送详细信息。它将进入错误回调响应并显示发送msg时出错。我可以帮忙解决这个问题吗?或者有没有其他方法可以通过按钮点击发送电子邮件?谢谢!
答案 0 :(得分:0)
您是否尝试过将完整网址(包括主机和协议)输入到网址属性? 我问,因为看起来你正在使用离子用于混合应用程序开发。
如果您的应用是混合移动应用或托管在其他域中,请确保您的PHP服务器还启用了CORS(跨源资源共享)。
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
将这两行放在您的PHP代码之上,这样就可以让您的服务器从跨域获取请求。