【问题标题】:Is it ok to use a non-existent url to make a AJAX call?可以使用不存在的 url 进行 AJAX 调用吗?
【发布时间】:2018-08-16 16:42:45
【问题描述】:

情境化:

我正在尝试使用 AJAX

$.ajax({
    url : "/logTest", // <- "false" url
    //url : "/log",   // <- "real"  url
    type : 'POST',
    success : function(result) {
        alert("send");
        console.log(result);
        // ifrm.document.open();
        // ifrm.document.write(data); // Escreve no iframe
        // ifrm.document.close();
        $("#content").html(result);

    }
});

每“X”次仅更新 HTML 页面的一部分 (&lt;div&gt;)。之前,我使用相同的 URL 来返回我的视图和我的对象(导致几个问题 )。为了避免这种情况,我为我的对象(/logTest)创建了一个“假”url,并保留了视图的原始 url(/log)。

查看:

@RequestMapping(value = "/log", method = RequestMethod.POST)
    public String logContent_post(@Valid Log log, BindingResult bindingResult, Map<String, Object> model) {
          ...
    model.put("path", logsDir);
    model.put("log", log);
    model.put("currentPage", "logs");
    model.put("root", root);
return "log";
}

对象:

@RequestMapping(value = "/logTest", method = RequestMethod.POST)
    @ResponseBody
    public String logContent_aux(@Valid Log log, BindingResult bindingResult, Map<String, Object> model) {
             ...
 return log.getContent();
}

问题是我预期的对象返回为空,我不知道为什么。

浏览器控制台:

我的控制台:

\clearing-dit\logs\null (The system can not find the specified file)

所以,我的问题是:这样使用 url 有错吗?我的问题是源于此还是我遗漏了其他问题?如果我将我的原始 url (/log) 用于对象,则对象会正确返回。但是,通过这样做,我无法返回我的视图,因为不可能返回具有相同 url 的两个东西,对吧?

【问题讨论】:

    标签: javascript java ajax iframe


    【解决方案1】:

    你的问题很不清楚。 在您的VIEW 中,您正在返回一个字符串,而在您的OBJECT 中,您正在调用一个函数log.getContent(),该函数也应该返回一个字符串,但找不到该函数的代码。

    当您使用错误的 URL 时,您会得到什么状态码。

    【讨论】:

    • 在我看来,我返回视图的名称(“日志”)。而且,在我的对象中,我返回对象的内容 (log.getContent())。我没有收到任何状态代码,控制台上唯一显示的是来自 console.log() 的返回结果为空白(null)。
    • 您能否检查控制台中的网络选项卡以检查此调用的状态代码
    • 所以,您的 Ajax 调用正在与 OBJECT 中的控制器通信。你只需要调试你的log.getContent(); 看看它为什么返回null
    猜你喜欢
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多