我现在就遇到了你说的ajax跨域的问题,我的是一个静态的html的网页,通过js想去请求一个action 或者一个servlet 将值在返回到页面上,由于跨域得不到返回来的值。我看人家例子用jsonp 是这么用吗?想请教一下。。
</p> <pre><code> var url = "http://192.168.1.181:8080/PisWeb/login!getstr.action"; function callbackFunction(result) { var html = '<ul>'; for(var i = 0; i < result.length; i++) { html += '<li>' + result[i] + '</li>'; } html += '</ul>'; document.getElementById('divCustomers').innerHTML = html; } function CallJSONPServer(url){ // 调用JSONP服务器,url为请求服务器地址 var oldScript =document.getElementById(url); // 如果页面中注册了调用的服务器,则重新调用 if(oldScript){ oldScript.setAttribute("src",url); return; } var script =document.createElement("script"); // 如果未注册该服务器,则注册并请求之 script.setAttribute("type", "text/javascript"); script.setAttribute("src",url); script.setAttribute("id", url); document.appendChild(script); } </code></pre> <p>
这个是我action的方法
public String getstr(){
String str = ":[\"customername1\",\"customername2\"]";
try {
this.getHttpResponse().setCharacterEncoding("UTF-8");
this.getHttpResponse().getWriter().println(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
要导入jquery.js
$(function(){ $.ajax({ type:"POST", //是get ,POST url:"http://127.0.0.1:8088/Struts2/test!add", //访问URL data:"name=4&pwd=3", //参数 // dataType:'json', //返回类型,默认是String success:function(data){ //成功调用的方法 alert(data); }, error:function(){ //失败调用的方法 } }); });