代码之家  ›  专栏  ›  技术社区  ›  Makogan

如何使用django从服务器向客户端发送错误消息并将其打印到控制台?

  •  0
  • Makogan  · 技术社区  · 5 年前

    我有一个服务器请求,它应该找到一个文件,如果它没有找到该文件,需要在js控制台中打印一条自定义消息,说“我找不到文件x”。

    我尝试过引发异常、引发Http错误、发送自定义请求。。。。

    但我不知道如何发送一个错误(例如400404…)和一个与该错误相关的自定义消息。

    这样做的目的是 XMLHttpRequest() 对象获取一个响应,如果状态不是200,则应在此时打印错误。

    我对这是否是好的做法不感兴趣,我只是需要能做些什么。

    在服务器端,我正在尝试以下内容:

    raise HttpResponse('I am message')
    

    在客户端,我正在尝试:

    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.onloadend = () => {
        if (xhr.status != 200) {
             //print error somehow
        }
    }
    
    1 回复  |  直到 5 年前
        1
  •  0
  •   Presley Cobb    5 年前

    如果您预期在后端发生错误,可以将该代码包装在try-catch块中,而不是抛出错误,您只需从错误中获取文本并将其发送回。这将导致一个200响应,虽然你已经捕捉到错误。所以id用某种对象响应,其中一个属性是status。类似于:

    [
     ['status'] => 'error',
     ['message'] => 'I've fallen and cant get up'
    ]
    

    然后你就可以:

     if(response.data.status == 'error') {
    console.log(response.data.message);
    }
    

    希望能有所帮助。