主页 > 知识库 > 探讨Ajax中的一些小问题

探讨Ajax中的一些小问题

热门标签:服务器配置 电子围栏 团购网站 Linux服务器 科大讯飞语音识别系统 Mysql连接数设置 银行业务 阿里云

1.ajax跨域传递值是所需要的回传的类型为jsonp

$.ajax({
url: "http://.......",
type: 'GET',
dataType: 'JSONP',//js跨域传值
success: function (data) {
}
});

dataType

类型:String

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 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(){
var my_data="前台变量";
my_data=escape(my_data)+"";//编码,防止汉字乱码
$.ajax({
url: "ajax_php.php",
type: "POST",
data:{trans_data:my_data},
//dataType: "json",
error: function(){
alert('Error loading XML document');
},
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 待解码的 json string 格式的字符串。 assoc 当该参数为 TRUE 时,将返回 array 而非 object 。

json_encode ( mixed $value [, int $options = 0 ] ) 返回 value 值的 JSON 形式
json_encode($a)

以上大概给大家分享了三个ajax小问题,非常常见,希望对大家有所帮助!

您可能感兴趣的文章:
  • 完美解决AJAX跨域问题
  • 解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题
  • ajax给全局变量赋值问题解决示例
  • jquery ajax传递中文参数乱码问题及解决方法说明
  • jquery.ajax的url中传递中文乱码问题的解决方法
  • 有关ajax的error与后台的异常问题解决
  • jquery ajax应用中iframe自适应高度问题解决方法
  • IE9版本以下ajax 跨域问题可行解决方法
  • escape函数解决js中ajax传递中文出现乱码问题
  • ajax获取数据中文乱码问题最简单的完美解决方案
  • jquery+ajax验证不通过也提交表单问题处理
  • 解决ajax跨域请求数据cookie丢失问题
  • 有关Ajax跨域问题的两种解决方法

标签:大理 蚌埠 衢州 萍乡 江苏 衡水 枣庄 广元

巨人网络通讯声明:本文标题《探讨Ajax中的一些小问题》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266