未捕获的exception:Ajax进程内存不足
我遇到了一个问题我提交了一个包含小数据的简单表单,当我在console
选项卡中检查时,ajax的URL似乎正在工作但是在处理完ajax之后它会发出错误警告并重定向到我的主页从控制台选项卡我有这个weird error
:
未捕获的exception:内存不足
在我的ajax中,我只有这个简单的代码:
$("#add-comment").on('click', function() { var id = $('input[name=\'review_id\']').val(); var customer_id = $('input[name=\'customer_id\']').val(); var $comment = $('textarea[name=\'user_comment\']').val(); var sample = "test"; $.ajax({ url: 'index.php?route=product/product/writeSubComment', type: 'post', dataType: 'json', data: { text: sample }, beforeSend: function() { }, success: function(data) { console.log(data.test); }, error: function() { alert('ERROR!!!'); } }); });
在我的PHP控制器中,我有这个function
public function writeSubComment() { $json = array(); $json['test'] = $this->request->post['text']; $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); }
从您重定向到主页的描述,但在ajax响应部分中没有代码来执行此操作,我怀疑元素#add-comment是表单中的提交按钮。
如果是这种情况,那么当您单击#add-comment提交按钮时,您的表单可能会在运行ajax代码的同时提交。 这将解释内存不足错误,因为在页面重定向时ajax javascript被清除。
您需要阻止表单提交,并让success()或failure部分处理下一步(即刷新页面,更新注释框)。 一种方法是改变
$("#add-comment").on('click', function() { ...
至
$('#add-comment').on('click', function(event){ event.preventDefault(); ...
或者更改提交按钮
至
或者像这样更改表单标签
这是我对可用信息的最佳猜测。
我在Firefox中测试时遇到了类似的问题。 将按钮的type
从submit
更改为按钮对我有用。
至
我在通过Ajax执行搜索时遇到此错误,当我尝试在HTML DOM中显示结果并解决问题如下:
$('..a place where the processed output Ajax request..').on('click', '#add-comment', function() {...});
我的问题通过改变解决了
成
意思是通过添加type="button"
解决了我的..