ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作。解决方案网上很多,我就知道两种1.代理简单说就是本来应该请求(假如自己是www.a.comd,另一个是www.b.com)www.b.com,用代理的话就是请求自己的网站内的PHP文件或者。Net 文件,让PHP文件和www.b.com进行交互这样就不存在跨域的问题了 PS。这个方法没有用过,
2.利用jsonp方面 ,这里需要双方都要设置 。废话不多说,直接上代码
var urlpath =
\"http://251.ssay.com/123.php?jsoncallback=?×tamp=\"+ new Date();
$.getJSON(urlpath , function(data) {
if(data==true){
window.location.href=\"http://www.renault.cn/news/P2012
0621.html\";
}else{
alert(\"信息填写错误\"); } });
看到 定义的urlpath 后面添加了jsoncallback=? ,这个是关键,实际上 传送的是jsoncallback=jsonp1341636909711 (数字是改变的) 红色就是?传送的东西,
这是客户端情况。然后是后台程序需要改的
1.首先需要接受 jsoncallback
$jsoncallback = $_GET['jsoncallback'];
2.返回值 结合起来
$result = 'true';
$jsoncallback = $jsoncallback .\"($result)\";
True 就是客户端 function (msg ) 的值
3.把值输出
echo $jsoncallback;
这个方法就是提交方式变成$.getJSON url 地址中加入jsoncallback ,后台程序需要接受jsoncallback 结合返回值,返回,OK了
Html 代码 var urlpath =
\"http://251.ssay.com/123.php&jsoncallback=?×tamp=\"+ new Date();
$.getJSON(urlpath , function(data) {
if(data==true){
window.location.href=\"http://www.renault.cn/news/P20120621.html\";
}else{
alert(\"信息填写错误\");
} }); PHP代码 $jsoncallback = $_GET['jsoncallback'];
$result = 'true';
$jsoncallback = $jsoncallback .\"($result)\";
echo $jsoncallback; ?>
测试的时候不要放到相同域名,最好放到不同服务器,
因篇幅问题不能全部显示,请点此查看更多更全内容