Maison > développement back-end > tutoriel php > javascript - ajax返回值问题

javascript - ajax返回值问题

WBOY
Libérer: 2016-09-28 08:54:09
original
896 Les gens l'ont consulté

ajax请求代码如下:
javascript - ajax返回值问题
php处理部分:

javascript - ajax返回值问题
火狐firebug :

javascript - ajax返回值问题
打印不出来怎么回事???

回复内容:

ajax请求代码如下:
javascript - ajax返回值问题
php处理部分:

javascript - ajax返回值问题
火狐firebug :

javascript - ajax返回值问题
打印不出来怎么回事???

我比较喜欢直接用 $.post(settings)(其实更喜欢直接 $.ajax(url, settings)),这样参数比较清楚。回调通过 $.post() 或者 $.ajax() 返回的 promise 的 done() 来设置,这样结构比较清楚

<code class="javascript">$.post({
    url: theurl,
    dataType: "json",
    data: {
        tablename: _tbname
    }
}).done(function(jo) {
    // jo 是 javascript object
    // 从后端返回的 JSON 解析而来
    console.log(jo);
});</code>
Copier après la connexion

用你的那种方式,也可以直接在 callback 后面加个参数 "json" 来表示数据类型

<code>$.post("http://url/", { tablename: _tbname}, function(data) {}, "json");</code>
Copier après la connexion

json_encode($data,JSON_UNESCAPED_UNICODE)

竟然也没报错, 你重启firefox看看吧
PS: 设置响应头 @header("Content-Type:application/json;charset=utf8");
就可以省略 var json = eval(data); 这步了
而且, 用eval不安全, 建议用

<code>var json = jQuery.parseJSON(data);</code>
Copier après la connexion

换chrome(我是真心不习惯火狐的调试,你习惯那就算了),打断点调试,多半是没有进入方法。好久没用过火狐了,依稀记得以前好像也有过类似的问题,这个在chrome下应该是会报错的,在火狐下不报错。你先打断点看看吧,如果没进入方法就换chrome试试。

默认返回的data是字符串,而不是一个json对象,解决方式一,请求参数中指定返回类型为json,jquery内部会解析成对象;解决方式二,自己讲json字符串反序列化成对象。例如:http://blog.163.com/m13864039...

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal