【问题标题】:What's an Alternative/Fix to $.post for Cross Domain for Unknown Amount of Domains对于未知数量的域,跨域的 $.post 的替代/修复是什么
【发布时间】:2017-08-01 12:27:27
【问题描述】:

对于真正需要做的事情,这可能是一种非常业余/糟糕的方法,但我目前正在构建一个可以使用脚本标签嵌入客户网站的平台。然后,该脚本允许用户输入一些信息并将其发送到电子邮件。其中一个选项是查看某个人的社交媒体。我想要做的是将社交按钮点击记录到 MySQL 数据库。

目前我的社交点击代码是$.post 到b.domain.com。我收到错误消息:XMLHttpRequest cannot load due to access control checks. 当我手动将每个域添加到 .htaccess 中的允许源时,此错误就会消失,但是如果必须为客户想要嵌入脚本的每个域添加它,这将非常令人沮丧. * 因为Allow Credentials 而无法使用,所以我对这个主题的了解有限。

任何指向正确方向的人都将不胜感激,如果问题措辞不当/信息不足,我们深表歉意。

【问题讨论】:

    标签: apache .htaccess cors cross-domain


    【解决方案1】:

    当我手动将每个域添加到 .htaccess 中的允许源时,此错误就会消失,但是如果必须为客户端想要嵌入脚本的每个域添加此内容,这将非常令人沮丧。 *无法使用,因为Allow Credentials

    因此,除了在响应中发送 * 之外,您还可以让 Origin 请求标头的值基本上与 Access-Control-Allow-Origin 响应头:

    SetEnvIfNoCase ORIGIN (.*) ORIGIN=$1
    Header always set Access-Control-Allow-Origin "%{ORIGIN}e"
    

    这将允许来自任何来源的请求,即使请求包含凭据。

    下面是实现相同效果的另一种方法。

    RewriteEngine On
    RewriteCond %{HTTP:Origin} (.+)
    RewriteRule . - [E=CORS_ORIGIN:%1]
    Header set Access-Control-Allow-Origin %{CORS_ORIGIN}e env=CORS_ORIGIN
    

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 1970-01-01
      • 2013-10-29
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多