AWS S3静态网站ajax回调失败

时间:2015-01-14 15:24:12

标签: ajax amazon-s3 static-site

最近,当网站开发正在进行时,我在aws s3上主持了一个带有订阅选项的静态网页。我的静态网页使用订阅者的电子邮件作为参数对另一个RESTful服务进行ajax调用。订阅完成后,我需要通知订阅者。这里它回调了回调问题。

$.ajax({
    type: 'GET',
    url: 'http://www.my-domain.com/api/Subscribe?email=' + email
}).success(function (data) {
    if (data) {
        alert('Thank you for registering!');
    }
});

订阅完成后#34; .success("没有启动。请求的响应是:

Reload the page to get source for: http://www.my-domain.com/api/Subscribe?email=john.smith@simplyemail.com

有人知道它是s3功能还是别的什么?

1 个答案:

答案 0 :(得分:2)

根据您的说明,这似乎与CORS政策相关。

在亚马逊定义的时候看"why CORS"

  

为了确保您的内容安全,您的网络浏览器会实施一项称为相同原始政策的内容。

     

默认策略可确保脚本和其他活动内容   从一个站点或域加载不能干扰或与之交互   来自另一个位置的内容没有明确指示这一点   是理想的行为。

     

在某些情况下,原始页面的开发人员可能拥有   编写与内容或内容交互的代码的正当理由   其他地方的服务。 CORS提供了允许的机制   开发人员告诉浏览器允许这种互动。

我理解:

  

[...] ajax调用另一个RESTful服务[...]

表示调用另一台服务器,由于CORS,这可能会被浏览器阻止。

参考文献:

Mozilla W3C