我正在为使用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包装器服务: - (
干杯伙计....希望我在这里给出了足够的信息。