Javascript 访问控制不允许Origin domain.com允许Origin
获取“访问控制不允许原点允许原点”。错误。我想做的是,我在一个子域上建立了一个时事通讯系统,在另一个子域上建立了时事通讯系统。当用户输入错误的电子邮件并提交信息时,代码工作正常,但是它不会显示“success,email sent message”(成功,电子邮件已发送消息),提交时我会收到错误Javascript 访问控制不允许Origin domain.com允许Origin,javascript,jsonp,access-control,Javascript,Jsonp,Access Control,获取“访问控制不允许原点允许原点”。错误。我想做的是,我在一个子域上建立了一个时事通讯系统,在另一个子域上建立了时事通讯系统。当用户输入错误的电子邮件并提交信息时,代码工作正常,但是它不会显示“success,email sent message”(成功,电子邮件已发送消息),提交时我会收到错误 $('#submitButton').click(function(e) { var ap = $('.appear-first:eq(0)').fadeOut(200);
$('#submitButton').click(function(e) {
var ap = $('.appear-first:eq(0)').fadeOut(200);
if ($('#email').val() === '' || $('#email').val().search('@') == -1){
ap.css('color','#f00').text('Please enter a valid Email Address.').fadeIn(300);
e.preventDefault();
} else {
var a = $('#subscribeform');
console.log(a);
$.post('http://domain.domain.com/?p=subscribe&id=1', a.serialize(), function(re) {
console.log(re);
ap.css('color','#fff').text('Thank you for subscribing to our newsletter. You will be emailed shortly to confirm your address.').fadeIn(300);
});
}
e.preventDefault();
});
});
谢谢。浏览器将发送一个飞行前请求,通过检查响应标题来检查请求的域是否允许
CORS
您请求的域应该知道您请求的域
因此,在domain.com
上实现如下内容(PHP示例):
感谢您的建议,当使用您提供的代码时,我将脚本改写,并在新闻稿页面上输入所有值,这是从其他子域分离出来的。这是我上次能得到的。但是,我没有收到这两条消息(错误请输入正确的电子邮件,并感谢您提交消息)是否还有其他解决方法?正如我所说,它的工作方式与预期相同,但一旦提交电子邮件,它将不会显示感谢信,但它是通过通讯系统进行的。这听起来有点太详细了,我不知道你的订阅服务是如何工作的。这解决了您的CORS问题吗?是的,但是它会转发到订阅表单所在的域。我需要的是确认发送的电子邮件中包含感谢子消息。您可能应该为此打开一个新问题。有几种解决方案具有不同的复杂性和安全性。
$allowed_domains = array("http://sub.domain.com");
if (isset($_SERVER['HTTP_ORIGIN'])
&& in_array($allowed_domains, $_SERVER['HTTP_ORIGIN'])) {
// emit CORS header
header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
// enable session/cookies
header('Access-Control-Allow-Credentials: true');
// optional headers here
header("Access-Control-Allow-Headers: Content-Type");
}
if ($_SERVER["REQUEST_METHOD"] === "OPTIONS") {
// CORS pre-flight request, we don't need to do anything else
exit;
}