Angular JS - Laravel Concurrent http调用

时间:2014-10-04 11:45:46

标签: php angularjs laravel-4

我正在为使用Laravel的朋友创建一个webapp,以提供REST API和Angular JS作为前端。

我有一个非常奇怪的问题...当一个页面启动时,有4个$ http get调用,所有这些调用(但是到不同的URL):

this.getSiteText = function(resource) {
    $http.defaults.useXDomain = true;
    $http.defaults.withCredentials = true;        
    delete $http.defaults.headers.common['X-Requested-With'];

    var promise = $http({
        method: 'GET',
        url: SettingsService.getPSMUrl() + "/sitetext/" + resource
    }).then(function(response) {
        return response.data;
    });
    return promise;
},

在Laravel方面,我在filters.php文件中处理CORS,如下所示:

App::before(function($request)
{
    Log::info('Start Request'.$request->url());
    header('Access-Control-Allow-Origin: http://myfakeurl.com');
    header('Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE');
    header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Request-    With');
    header('Access-Control-Allow-Credentials: true');    
});

我尝试了多种方法处理cors,但我现在开始认为它与我的问题无关。

所以一切都在我运行xampp的Windows机器上工作,然后当我部署到我的主机时,我开始遇到问题。随机的一些http调用将失败。 Fiddler将它们显示为500和Chrome的控制台输出关于No'Access-Control-Allow-Origin'错误消息...有时我只是在Chrome控制台中获得500。奇怪的是在Fiddler中,500的一些实际上伴随着我的JSON数据......所以基本上一切都还可以,但状态代码是500.

另一件奇怪的事情......如果我回拨给$ http的电话号码...所以只打开页面请求2(只是注释掉其他服务电话)然后一切正常...所以我的get call会在一个只有一个其他get调用的页面上可靠地传递...但是如果页面上有4个则会失败。

我出去的任何想法....我想知道在Laravel中是否存在错误,同时处理多个请求同时命中数据库导致它们混淆并失败? Laravel是否有与Microsoft的WCF和ASP.NET一样的InstanceContextMode类型?

任何建议都赞赏....我的下一步是在每次调用之间以角度和超时写一个$ http包装器服务: - (

干杯伙计....希望我在这里给出了足够的信息。

0 个答案:

没有答案