由于同源策略导致ajax无法读取远程数据, 同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。
1、解决此类问题,最直接的方法就是,就是给被请求的网站,添加HTTP头响应头
“Access-Control-Allow-Origin:” //值为或指定的域名。
2、使用JSONP格式,即在jQuery中ajax请求参数dataType:‘JSONP‘
url语法:url?callback=?
使用 ? 作为回调函数名,而非真实的函数名。因为 jQuery 会用生成的函数名替换 ?。
在被请求的网站要调用回调函数,以jsp为例
String output = request.getParameter(“callback”) + “(” + jsonData + “);”;
response.setContentType(“text/javascript”);
out.println(output);