【问题标题】:No matter how i write the url in ajax the response is always success [duplicate]无论我如何在ajax中编写url,响应总是成功[重复]
【发布时间】:2018-06-16 20:28:31
【问题描述】:

我有这个 ajax 请求,但它没有做我想做的事情,它应该是一个返回一些数据的 GET,但无论我如何设置 URL,它总是给出成功响应,即使它不是成功了,

 var id = 5;
$.ajax({
        type: 'GET',
        URL: "'../this is totaly wrong/" + id + "'",
        success: function(data) {

            console.log("success");
            window.location.replace("/formex");

 }
 })

正确的路由应该是“readForm/:id”,但我这样写,无论如何它都会成功并重定向到“/formex”页面,我在这里写的 url 甚至不存在它只是为了证明即使它不应该取得成功

【问题讨论】:

  • 您能展示一下您的服务器路由是如何设置的吗?
  • 服务器返回的响应是什么?有时会返回带有成功错误代码的“错误”,但作为带有友好错误消息的页面。这一切都取决于服务器实际返回的内容。
  • global.app.get('/readForm/:id', function(req, res) { var id = req.params.id; global.modelRespForm.readForm(function(err, data) { if (err) { // 错误处理代码在这里 console.log("ERROR : ", err); } else { res.send(id); res.end('{"success" : "更新成功", “状态”:200}'); } }); })

标签: javascript node.js ajax express


【解决方案1】:

您的服务器正在执行 Console.log 错误。您的服务器应将 HTTP 状态设置为错误并相应地返回。在这种情况下,您的服务器将返回一个“200”,这是成功调用的定义。 你可以做的是:

  1. 返回 200,但在返回正文(可能是 JSON)中添加一个指示错误的字段。然后在您的前端 success 处理程序读取该字段并确定它是否是有效请求。

  2. 返回错误代码,例如 500,然后在您的前端捕获 error 并处理。

请确保您了解 HTTP 状态代码。

【讨论】:

    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 2019-09-06
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多