使用Spring MVC在Ajax响应中获取406错误

海岸

我正在学习Ajax,并试图使其在我的项目中起作用。基本上我想在项目上实现谷歌一样的建议。
我有一个UI,该UI异步将ajax请求发送到服务器并获得相关建议

function showHint(str) {
    if (str.length == 0) { 
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
    	console.log(str);
       
    	var xmlhttp = new XMLHttpRequest();
    	 console.log(xmlhttp.readyState);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
            }
        };
        xmlhttp.open("GET", "/hint?word=" + str, true);
        xmlhttp.send();
    }
}
<label>Name <input id="peak" type="text" name="peak_name" onkeyup="showHint(this.value)">
							<p id="peak"></p>
						<p>Suggestions: <span id="txtHint"></span></p>

Spring MVC控制器是

@RequestMapping(value = { "/hint" }, method = RequestMethod.GET,params={"word"})
public @ResponseBody ArrayList<String>  hint(ModelMap model,@RequestParam String word) {
    System.out.println("Inside Hint");
    String[] hints = { "Ram", "Shyam" };

    ArrayList<String> returnhint = new ArrayList<String>();

    // lookup all hints from array if $q is different from ""
    if (word != null) {
        word = word.toLowerCase();
        int length = returnhint.size();
        for (int j = 0; j < length; j++) {
            if (word.contains(hints[j])) {

                returnhint.add(hints[j]);

            }
        }

    }
return returnhint;

}

我是Ajax的新手。那么,是否有必须处理xmlhttp对象的responseText的特定方式?
我的问题是,由于我已经在响应正文中传递了ArrayList,如何获取Ajax以获取该响应并相应地更新UI?

海岸

文档中,xmlhttprequest对象具有一组属性来处理响应

XMLHttpRequest.response只读
返回一个ArrayBuffer,Blob,Document,JavaScript对象或DOMString,具体取决于XMLHttpRequest.responseType的值。包含响应实体主体。

因此,我基本上返回了一个String而不是ArrayList,并使用逗号','分隔符将字符串中所有匹配的提示连接在一起

并在javascript文件中。我只是使用split(',')函数列出了响应列表。

function showHint(str) {
    if (str.length == 0) { 
        document.getElementById("txtHint").innerHTML = "";
        return;
    } else {
    	console.log(str);
       
    	var xmlhttp = new XMLHttpRequest();
    
        xmlhttp.onreadystatechange = function() {
       		
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          		var list=xmlhttp.responseText.split(',');
          		console.log(list);
                document.getElementById("txtHint").innerHTML = list;
            }
        };
        xmlhttp.open("GET", "/hint?word=" + str, true);
        xmlhttp.send();
    }
}
<label>Name <input id="peak" type="text" name="peak_name" onkeyup="showHint(this.value)">
<p id="peak"></p>
<p>Suggestions: <span id="txtHint"></span></p>

控制器方式

    @RequestMapping(value = { "/hint" }, method = RequestMethod.GET,params={"word"})
public @ResponseBody String hint(ModelMap model,@RequestParam String word) {
    System.out.println("Inside Hint");
    String[] hints = { "Ram", "Ra","R","Shyam" };

    String returnedhints="";
    // lookup all hints from array if $q is different from ""
    if (word != null) {
        System.out.println("i am here");
        //word = word.toLowerCase();
        int length = hints.length;
        for (int j = 0; j < length; j++) {
            System.out.println(word+"contains"+hints[j]+"="+word.contains(hints[j]));
            if ((word.regionMatches(0, hints[j], 0, hints[j].length())) {
                returnedhints= returnedhints+","+hints[j];
            }
        }
    }

return returnedhints;

}

希望这对使用Spring MVC的未来Ajax学习者有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

406中的spring 4 ajax响应不可接受

来自分类Dev

错误406无法接受的Spring MVC 4 Extjs5 JSON响应

来自分类Dev

Ajax使用Spring MVC获取请求

来自分类Dev

使用JSON将HTTP 406错误升级到Spring MVC 4.1

来自分类Dev

如何在Spring MVC中获取jQuery .load()、. post()响应?

来自分类Dev

Spring MVC中的延迟结果返回错误响应

来自分类Dev

如何使用JavaScript在Spring MVC中获得对JSP的Unicode响应

来自分类Dev

使用单独的函数从ajax响应中获取jQuery目标html

来自分类Dev

使用Ajax从JSON响应中的odata属性获取值

来自分类Dev

如何使用jQuery从AJAX请求中获取响应文本

来自分类Dev

Spring MVC仅使用ContentNegotiationManagerFactoryBean返回json 406

来自分类Dev

Spring MVC仅使用ContentNegotiationManagerFactoryBean返回json 406

来自分类Dev

Spring MVC中的请求响应

来自分类Dev

Spring MVC中的部分响应

来自分类Dev

使用Spring MVC设置完整的响应大小

来自分类Dev

Spring MVC + Ajax错误400

来自分类Dev

使用Spring-boot在Jpa查询中获取错误

来自分类Dev

Spring MVC AJAX错误请求错误

来自分类Dev

Spring Webservices给出406错误

来自分类Dev

使用Spring MVC获取URL参数

来自分类Dev

使用Spring MVC的JSP页面错误

来自分类Dev

使用tomcat 6的Spring MVC 404错误

来自分类Dev

如何在spring或使用junit中获取rest api的执行时间(获取响应的时间)

来自分类Dev

400(错误请求)错误-使用JQuery AJAX上传Spring MVC文件

来自分类Dev

在SPRING中从Ajax调用响应时显示不可接受的错误

来自分类Dev

在SPRING中从Ajax调用响应时显示不可接受的错误

来自分类Dev

使用JavaScript获取错误以在MVC中查找网格长度

来自分类Dev

Spring MVC-以@ResponseBody的形式返回对象时出现问题(著名错误406,未解决)

来自分类Dev

使用AJAX仅获取PHP响应

Related 相关文章

  1. 1

    406中的spring 4 ajax响应不可接受

  2. 2

    错误406无法接受的Spring MVC 4 Extjs5 JSON响应

  3. 3

    Ajax使用Spring MVC获取请求

  4. 4

    使用JSON将HTTP 406错误升级到Spring MVC 4.1

  5. 5

    如何在Spring MVC中获取jQuery .load()、. post()响应?

  6. 6

    Spring MVC中的延迟结果返回错误响应

  7. 7

    如何使用JavaScript在Spring MVC中获得对JSP的Unicode响应

  8. 8

    使用单独的函数从ajax响应中获取jQuery目标html

  9. 9

    使用Ajax从JSON响应中的odata属性获取值

  10. 10

    如何使用jQuery从AJAX请求中获取响应文本

  11. 11

    Spring MVC仅使用ContentNegotiationManagerFactoryBean返回json 406

  12. 12

    Spring MVC仅使用ContentNegotiationManagerFactoryBean返回json 406

  13. 13

    Spring MVC中的请求响应

  14. 14

    Spring MVC中的部分响应

  15. 15

    使用Spring MVC设置完整的响应大小

  16. 16

    Spring MVC + Ajax错误400

  17. 17

    使用Spring-boot在Jpa查询中获取错误

  18. 18

    Spring MVC AJAX错误请求错误

  19. 19

    Spring Webservices给出406错误

  20. 20

    使用Spring MVC获取URL参数

  21. 21

    使用Spring MVC的JSP页面错误

  22. 22

    使用tomcat 6的Spring MVC 404错误

  23. 23

    如何在spring或使用junit中获取rest api的执行时间(获取响应的时间)

  24. 24

    400(错误请求)错误-使用JQuery AJAX上传Spring MVC文件

  25. 25

    在SPRING中从Ajax调用响应时显示不可接受的错误

  26. 26

    在SPRING中从Ajax调用响应时显示不可接受的错误

  27. 27

    使用JavaScript获取错误以在MVC中查找网格长度

  28. 28

    Spring MVC-以@ResponseBody的形式返回对象时出现问题(著名错误406,未解决)

  29. 29

    使用AJAX仅获取PHP响应

热门标签

归档