您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页ajax跨域提交详解及问题介绍

ajax跨域提交详解及问题介绍

来源:意榕旅游网
AJAX跨域解决方案

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; ?>

测试的时候不要放到相同域名,最好放到不同服务器,

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务