Backbone.js 使用Laravel和Omnipay的访问控制允许始发站

Backbone.js 使用Laravel和Omnipay的访问控制允许始发站,backbone.js,laravel,omnipay,Backbone.js,Laravel,Omnipay,我试图从主干网发出一个Ajax post请求,将Laravel路由称为“pay”,但我总是从控制台日志中得到这个答案: XMLHttpRequest cannot load https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=EC-5S932878HU8059629. Origin http://localhost is not allowed by Access-

我试图从主干网发出一个Ajax post请求,将Laravel路由称为“pay”,但我总是从控制台日志中得到这个答案:

XMLHttpRequest cannot load https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=EC-5S932878HU8059629. Origin http://localhost is not allowed by Access-Control-Allow-Origin. 
我试图修改我的MAMP httpd.conf以接受跨域脚本,正如您所看到的,我向routes.php添加了一条头指令。 以下是我的JS代码:

Backbone.ajax({
        url:'index.php/pay',
        type:'POST',
        dataType:"json",
        data: converteditems,
        crossDomain: true,
        success:function (data) {
            if(data.error) {  // If there is an error, show the error messages
                $('.alert-error').text(data.error.text).show();
           }         
        }
    });
这是Laravel中的routes.php:

<?php
header('Access-Control-Allow-Origin: *');
Route::get('/', function()
{
return View::make('home');
});

Route::resource('products','ProductsController');

Route::resource('login', 'AuthenticationController');

Route::post('pay','PaypalController@doPay');
有关my console标题的更多信息:

Request URL:http://localhost/shoppingcart/public/index.php/pay
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Origin:http://localhost
Referer:http://localhost/shoppingcart/public/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36

Request URL:https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=EC-6J290181UP558705C
Request Headersview source
Origin:http://localhost
Referer:http://localhost/shoppingcart/public/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36
Query String Parametersview sourceview URL encoded
cmd:_express-checkout
useraction:commit
token:EC-6J290181UP558705C

如果您希望从Ajax发出请求,那么您不希望omnipay立即将该请求重定向到paypal。您希望将客户的浏览器重定向到paypal

因此,您需要在控制器操作中加入一些逻辑,因此如果它是一个XHR请求,那么只需返回URL将客户转发到

例如,在omnipay响应上使用$response->getRedirectUrl(),而不是$response->redirect()。然后将其放入JSON响应或其他内容中,并使用JavaScript将客户浏览器发送到该URL

Request URL:http://localhost/shoppingcart/public/index.php/pay
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Origin:http://localhost
Referer:http://localhost/shoppingcart/public/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36

Request URL:https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=EC-6J290181UP558705C
Request Headersview source
Origin:http://localhost
Referer:http://localhost/shoppingcart/public/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36
Query String Parametersview sourceview URL encoded
cmd:_express-checkout
useraction:commit
token:EC-6J290181UP558705C