探讨Ajax中的一些小问题
1.ajax跨域传递值是所需要的回传的类型为jsonp
$.ajax({ url:"http://.......", type:'GET', dataType:'JSONP',//js跨域传值 success:function(data){ } });
dataType
类型:String
预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断,比如XMLMIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据
这个值解析后,传递给回调函数。可用值:
"xml":返回XML文档,可用jQuery处理。
"html":返回纯文本HTML信息;包含的script标签会在插入dom时执行。
"script":返回纯文本JavaScript代码。不会自动缓存结果。除非设置了"cache"参数。注意:在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
"json":返回JSON数据。
"jsonp":JSONP格式。使用JSONP形式调用函数时,如"myurl?callback=?"jQuery将自动替换?为正确的函数名,以执行回调函数。
2.ajax的一个demo样例配合php获取值
$(function(){ varmy_data="前台变量"; my_data=escape(my_data)+"";//编码,防止汉字乱码 $.ajax({ url:"ajax_php.php", type:"POST", data:{trans_data:my_data}, //dataType:"json", error:function(){ alert('ErrorloadingXMLdocument'); }, success:function(data,status){//如果调用php成功 alert(unescape(data));//解码,显示汉字 } }); });
php代码
$backValue=$_POST['trans_data'];echo$backValue."+后台返回";
3.php的json的数据转换处理
json_decode(string$json[,bool$assoc]);//接受一个JSON格式的字符串并且把它转换为PHP变量
json_decode($data,true);
json待解码的jsonstring格式的字符串。assoc当该参数为TRUE时,将返回array而非object。
json_encode(mixed$value[,int$options=0])返回value值的JSON形式
json_encode($a)
以上大概给大家分享了三个ajax小问题,非常常见,希望对大家有所帮助!