如何在ember js操作中获得龙卷风错误响应

How can i get tornado error response in ember js action?

本文关键字:龙卷风 错误 响应 操作 ember js      更新时间:2023-09-26

我在Ember.js中为Tornado服务器的搜索结果编写了一个搜索操作。现在的问题是,当搜索没有找到任何结果时,我会使用tornado.web.HTTPError(statuscode):引发错误

Server.py:
=========
          if not rows:
            raise tornado.web.HTTPError(400) 

我正在尝试处理App.js文件中的错误,如下所示:

App.js:
========
      search: function() {
        // the current value of the text field
        var query = this.get('query');
        data = $.ajax({
          dataType: "json",
          url: "/search?query=" + query,
          async: false}).error(function(response) {
                           alert(response.responseText);
          }).responseJSON;

在上面的代码中,当Tornado引发错误时,会执行.error(response),但responseText为空。

我该如何捕捉错误并重定向到错误页面?

Issue不是来自EmberJS。它在CCD_ 4中。您请求的是JSON的data-type,但对于404,您发送的是HTML内容(可能像这个<html><title>400: Bad Request</title><body>400: Bad Request</body></html>),解析后返回空。从AJAX请求中删除JSON形式的数据类型,或者在服务器中编写自己的自定义处理程序,以JSON模式返回404错误。

class MyHandler(tornado.web.RequestHandler):
    def get(self):
        self.clear()
        self.set_status(400)
        self.finish("[]") //some JSON