2013-09-10 41 views
0
$.ajax({ 
        type: "POST", 
        url: "/find", 
        data: {coupon_name:value}, 
        success: function(response) { 
         alert("success") 
        }, 
        error: function(xhr, ajaxOptions, thrownError) { 
         alert(thrownError); 

        } 
       }); 

我在我的PHP页面中“回声”以抛出错误?基本上我使用ajax函数来计算返回的数字,如果它需要将错误返回给JS。通过cakephp返回javascript错误

+0

你可以在这里看看“回应什么”:http://book.cakephp.org/2.0/en/development/exceptions.html – porfiriopartida

+0

它值得注意的是,两者都回答到目前为止(我的和@ Amadan的)提到触发'.error()'可能是错误的。 –

回答

0

jQuery specification定义.error()为:

一个函数,如果请求不被调用。

故障HTTP代码是一个在400S或500S,所以CakePHP的等效的:

<?php 
    http_response_code(500); 
?> 

应该触发它。

这就是说,我不知道,抛出一个错误是在你的情况不一定正确 - 您的查询实际上并没有出错,只是返回结果为零。因此,无论如何,你最好在.success()函数中处理这个问题。

0

我建议你离开错误的实际HTTP有关的紧急情况,并处理你的回应你的代码逻辑。最简单的方法是使响应为JSON,如果你遇到一个错误返回的JSON的error组件,并手动检查它的存在。

这就是说,你可以使用$this->controller->response->statusCode(400)(CakePHP中)或类似的发送状态代码,会触发一个错误的条款。但我建议反对它。