我写了一个javascript,它使用Jquery.post从Web应用程序加载网页。我在iframe中显示页面。网页显示在IE中,但不在Firefox中显示。我尝试使用Firebug,但没有错误,它有一个302 OK注释。我尝试更改Jquery源也无法正常工作。尝试过JSON也没用。我试图解决这个问题超过3天。我尝试了很多方法,但效果不佳。
<html>
<head>
<script type="text/javascript"src="http://ajax.microsoft.com/ajax/jquery/jquery1.4.2.min.js">
</script>
<script type="text/javascript">
function callajax()
{
var iframe =document.createElement("iframe");
iframe.style.width="100%";
iframe.style.height="100%";
//app.getContentEl().appendChild(iframe);
document.body.appendChild(iframe);
jQuery.post('http://localhost:9090/simpleapp/formproc1', {'param':'rajat'},function(html){
var doc =iframe.contentWindow.document;
doc.write(html);
doc.close();
});
}
</script>
</head>
<body>
<p>Start typing a name in the input field below:</p>
<span></span>
<div id="display"></div>
First name:
<input type="text" />
<button onclick="callajax()">Click me</button>
</body>
</html>
我也会附上post方法,因为它也可能是错误的。
doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO自动生成的方法存根
PrintWriter out = response.getWriter();
String par = request.getParameter("param");
System.out.print("Hiii this is inside POST method");
//out.println("<data><param>"+par+"</param></data>");
//out.println(par);
//out.flush();
//System.out.print(par);
response.sendRedirect("first.jsp");
// out.println("{\"redirect\":\"first.jsp\"}");
}
答案 0 :(得分:1)
这是因为Same origin policy。你不能使用ajax来调用外部网站。如果你真的想使用,你必须使用JSONP。或者您可以使用服务器端代理。意味着,在服务器端调用外部站点并对该Web服务进行ajax调用。
看到我的回答, $.ajax call working fine in IE8 and Doesn't work in firefox and chrome browsers