什么引起了ajax不能跨域请求的问题?
ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。 跨域的安全限制都是指浏览器端来说的,服务器端是不存在跨域安全限制的。所以针对这2种情况衍生出2类跨域解决方案,一类是服务器端做中转类似代理方式,一类是js处理浏览器端的真正跨域访问。
});
php后端:
ult = json_encode(array($data));echo "flightHandler($result)";//此处的flightHandler是上面$ajax中jsonpCallback定义的名称,由于jquery已经封装好了jsonp可以直接拿去用。//当使用jsonp时,使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。//有人建议此处的函数名称可以弄成动态获取的,为了实现不同的操作代码范例:$method = isset($_GET[‘method’])?trim($_GET[‘method’]):’flightHandler’;//获取方法名称$result = json_encode(array($data));echo $method ."($result)";
或者
print_r($_GET['callback'] . '(' . urldecode(json_encode($rs_info_arr)) . ')');
注意两点:
1. datatype 必须为jsonp
2.callback=? 必须加上,开始没加上,success:function 一直没有响应(返回了数据)。
3.charset="utf-8" 为utf-8 ,文件的保存格式也应该是encoding utf-8 。
如果采用form 表单提交,不需考虑跨域问题。
meta charset="utf-8">Tools 欢迎使用地址转写工具,请输入链接