我正在使用Symfony2平台开发一个应用程序,该平台在一个时刻就文档准备好了一个简单的AJAX请求。
jQuery.ajax({
url: 'test.php',
type: 'POST',
data: {
'test': 'test'
},
success: function( response ){
jQuery( 'div#container' ).html( response );
}
});
问题是在加载调试工具栏的app_dev.php上,抛出了500错误。 更确切地说,来自'test.php'文件的AJAX响应被接收并加载到div容器中,但是当它尝试加载工具栏时,我收到一条警告消息:
“加载Web调试工具栏时出错(500:内部 服务器错误)。你想打开探查器吗?“
如果我打开探查器,我没有看到任何错误。
如果我打开工具栏的xhr请求,则会显示FastCGI 500错误:
模块FastCgiModule
通知ExecuteRequestHandler
处理程序PHP54_via_FastCGI
错误代码0x000000ff
如果我不尝试发出AJAX请求,则工具栏加载没有问题。
如果我在加载工具栏后手动发出请求(按钮上的事件),再次没问题。 如果我在加载工具栏之前手动发出请求(按钮上的事件),则会抛出错误。
注意:
此错误仅在本地计算机上发生(使用ISS 7.5,PHP 5.4.14)。在生产服务器(IIS服务器8.0,相同和PHP)上进行AJAX请求,并且工具栏加载没有问题。我用生产服务器上的php.ini替换了本地机器上的php.ini - 同样的问题。
最初AJAX请求正在加载一个简单的bundle控制器方法的结果,但后来我尝试了一个简单的PHP文件'test.php',同样的问题。
我尝试过post和get方法来发出请求。
有没有人知道出了什么问题?
这不是一个严重的问题,因为我有多个选项开发这个应用程序,但是在烦我,我已经失去了足够的时间。
PS:如果它有所不同,我在同一台机器上开发了一个应用程序 - 没有框架 - 可以产生多个同时的ajax请求。答案 0 :(得分:1)
以下内容不会修复您的错误,但提供了另一种可能满足您需求的方法。您似乎想要异步加载网站的一部分,Symfony2为此提供了一个解决方案:ESI渲染。 该文档位于:http://symfony.com/doc/current/book/templating.html#asynchronous-content-with-hinclude-js
此方法将创建一个ajax调用,然后才会呈现您的页面。