什么是针对未知数量域的跨域的$ .post的替代/修复

时间:2017-03-11 02:19:51

标签: apache .htaccess cors cross-domain

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

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

任何指向正确方向的人都会受到赞赏,如果问题措辞不当/有足够的信息,我们会道歉。

1 个答案:

答案 0 :(得分:1)

  

当我手动将每个域添加到.htaccess中的allow origin时,此错误就消失了,但是如果必须为客户端想要嵌入脚本的每个域添加此内容,这将非常令人沮丧。   由于*

,无法使用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