请求的资源上不存在“Access-Control-Allow-Origin”标头-Mollie payment ajax

Posted

技术标签:

【中文标题】请求的资源上不存在“Access-Control-Allow-Origin”标头-Mollie payment ajax【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource - Mollie payment ajax 【发布时间】:2017-10-01 15:41:06 【问题描述】:

我正在尝试使用以下 2 个库创建 mollie 付款:

https://github.com/barryvdh/laravel-omnipay https://github.com/thephpleague/omnipay-mollie

当客户端填写表单并提交 ajax 请求时,将向我的 laravel 应用程序中的一个函数发出请求。

在我的 Laravel 函数中,我正在尝试执行以下操作:

$gateway = Omnipay\Omnipay::create('Mollie');

$gateway->setApiKey('test_gSDS4xNA96AfNmmdwB3fAA47zS84KN');

$params = [
    'amount' => $ticket_order['order_total'] + $ticket_order['organiser_booking_fee'],
    'description' => 'Kapelhoek wijkfeesten',
    'returnUrl' => URL::action('EventCheckoutController@fallback'),
];


$response = $gateway->purchase($params)->send();


if ($response->isSuccessful()) 
    // payment was successful: update database
    print_r($response); die;
 elseif ($response->isRedirect()) 
    // redirect to offsite payment gateway
    return $response->getRedirectResponse(); die;
 else 
    // payment failed: display message to customer
    echo $response->getMessage(); die;

但我收到了这样的回复:

XMLHttpRequest 无法加载 https://www.mollie.com/payscreen/select-method/PRMtm6qnWG。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://kapelhoektickets.dev' 因此不允许访问。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

return $response->getRedirectResponse() 行正在重定向到应将消费者发送到的支付 URL。但是,AJAX 调用中不允许此重定向。

相反,您的脚本应使用 $response->getRedirectUrl() 打印此付款 URL,并且您的网页应使用 javascript 重定向消费者。

【讨论】:

【参考方案2】:

我认为问题在于 Api Dashboard。在发出 POST 请求之前,您必须将您的域列入白名单

【讨论】:

【参考方案3】:

如果你从不同的域请求你的 API,你必须实现 CORS - 我更喜欢这个包https://github.com/barryvdh/laravel-cors。

【讨论】:

以上是关于请求的资源上不存在“Access-Control-Allow-Origin”标头-Mollie payment ajax的主要内容,如果未能解决你的问题,请参考以下文章

django中的“请求的资源上不存在'Access-Control-Allow-Origin'标头”

如何解决请求的资源上不存在“Access-Control-Allow-Origin”标头

Http.post 请求的资源上不存在“Access-Control-Allow-Origin”标头

请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头

Angular 2请求的资源上不存在“Access-Control-Allow-Origin”标头[重复]

API 请求错误 - 请求的资源上不存在“Access-Control-Allow-Origin”标头