通过XMLHttpRequest发送电子邮件没有响应

时间:2014-01-22 17:51:11

标签: javascript php ajax

我尝试管理编辑模板,但我仍然无法发送电子邮件,我正在创建订阅框,到目前为止这是我的代码:

var x= document.getElementById("emailtxt").value;

var uploadFormData = new FormData();
uploadFormData.append("email", x);

var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://realfashionstreet.com/Emailme.php',true);
xhr.onload=function() {
    alert(this.status);
    if(this.status==200) {
        console.log('data sent');
    alert(xhr.responseText);
    } else {
        //alert(this.status);
        alert('Something Went Wrong, Try Again Later!');
    }
};

/*xhr.addEventListener("load", function () {
  document.getElementById('skm_LockPane').className= 'LockOff';
}, false);*/

xhr.send(uploadFormData);
return false;

}

这是我得到的方框: http://realfashionstreet.com

它没有显示任何错误或任何响应,也没有发送电子邮件,但我认为如果有人对如何使用javascript发送电子邮件有任何其他想法,网站模板不允许使用php文件...

由于

2 个答案:

答案 0 :(得分:1)

出于安全考虑,你不能这样做。查看JavaScript的相同原始政策。

有一些解决方法可以利用浏览器错误或角落案例,但不建议使用它们。

最好的方法是使用服务器端代理接收Ajax请求,然后将HTTP请求发送到其他服务器。这应该通过清理输入并将发送的请求类型和所联系的服务器列入白名单来仔细实施。

答案 1 :(得分:0)

你错过了www。在请求中,这会导致跨域策略违规。这是我在控制台中看到的错误。

XMLHttpRequest cannot load http://realfashionstreet.com/Emailme.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.realfashionstreet.com' is therefore not allowed access. Default.asp:1

确保页面的URL和XHR请求具有完全相同的域。包含www

等子域名