Yii2 ActiveForm条带令牌

Yii2 ActiveForm条带令牌,yii2,xmlhttprequest,Yii2,Xmlhttprequest,在Yii2中,我们使用\Stripe\Charge::create创建以下站点的文档示例: 只要我们在视图中使用纯HTML,一切都很好,但是当我们将card元素嵌入到ActiveForm中时,stripe.js返回: 由于以下原因,无法加载XMLHttpRequest 访问控制检查 我们希望使用ActiveForm简化表单上其他字段的验证和处理。有什么帮助吗 最好的, Joe错误与CORS相关,请参阅。使用相应的访问控制,如下所述 您可以在控制器中使用Yii的内置行为 无任何限制地首先尝试:

在Yii2中,我们使用\Stripe\Charge::create创建以下站点的文档示例:

只要我们在视图中使用纯HTML,一切都很好,但是当我们将card元素嵌入到ActiveForm中时,stripe.js返回:

由于以下原因,无法加载XMLHttpRequest 访问控制检查

我们希望使用ActiveForm简化表单上其他字段的验证和处理。有什么帮助吗

最好的,
Joe

错误与CORS相关,请参阅。使用相应的
访问控制
,如下所述

您可以在控制器中使用Yii的内置行为

无任何限制地首先尝试:

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
        ],
    ];
}
如果有效,则可以通过参数化行为来限制访问,如:

public function behaviors()
{
    return [
        'corsFilter' => [
            'class' => \yii\filters\Cors::className(),
            'cors' => [
                'Origin' => [https://api.stripe.com'],
                'Access-Control-Request-Method' => ['POST', 'PUT'],
            ],

        ],
    ];
}

所以,对于任何登陆这里的人,我唯一能让它工作的方法就是移除ActiveForm脚手架。我真的很郁闷,因为我不得不用Javascript验证非条带输入字段,这需要做很多工作

我挑战任何人使用ActiveForm在Yii中发布工作代码,这将返回一个令牌。我不认为这是可以做到的…但我希望是错误的

最好的,
Joe

错误与CORS有关。谢谢你的回复。但是没有快乐。我尝试了您发布的第一个“无任何限制”示例,得到了相同的结果。您应该在响应标题中看到:
access control allow origin:
Yes,access control allow origin:*出现在标题中。没有代码,我无法进一步分析问题。stripe.js返回…确切地说是什么意思?哪个函数调用生成错误?这样的错误基本上来自于你的浏览器。我的代码是从Stripe网站上删除的。它基本上请求一个令牌,然后将其附加到表单上的一个隐藏字段:
stripe.createToken(card)。然后(函数(result){if(result.error){//通知客户有错误……}或者{//将令牌发送到您的服务器。stripeTokenHandler(result.token);}}});
我相信在访问result.token时,我会收到消息。当我删除ActiveForm脚手架时,不会发生这种情况。