我有一个名为test.jsp
的JSP页面<%@ page language="java" contentType="text/json; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
response.setContentType("application/x-javascript");
%>
{"feed": "test"}
和一个html页面,我使用jquery来读取json对象。
<html>
<head>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
<script type='text/javascript'>
$(function(){
$.getJSON("localhost:8080/test.jsp?callback=?",{test:"test"}, function(data){alert("here");});
})
</script>
</head>
</body>
something here
</body>
</html>
但它在firefox中显示错误为无效标签。任何人都可以解释这个错误的原因。 我试过谷歌但无法找到解决方案或解释我的问题。需要做些什么呢。请帮帮我。 感谢
答案 0 :(得分:1)
我已经找到了解决这个问题的方法。审判。 这是因为当我们在跨域调用getJSON()时,响应应该包含在函数名中。这个函数是script.eg
中响应的回调处理程序html文件:
<html>
<head>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
<script type='text/javascript'>
$(function(){
$.getJSON("localhost:8080/test.jsp?callback=?");
}
function test(data){
alert(data.feed);
}
和jsp test.jsp
<%@ page language="java" contentType="text/json; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
response.setContentType("application/x-javascript");
out.write("test({\"feed\": \"test\"})");
%>
希望如果有人有同样的问题,这将有所帮助。你可以将回调函数名称作为参数传递,并在服务器上生成jsp,使其使用该名称来包装响应。
答案 1 :(得分:0)
我遇到了同样的问题,实际上是因为json或ajax调用存在一些问题。在你的json调用中它应该是{“test”:“test”}而不是{test:“test”}。
如果这是问题,请尝试它。