作者kerash (K.T)
看板Ajax
标题[问题] 简单的ajax在ie9会错误
时间Sun Jun 17 23:19:04 2012
我要做的功能只是很单纯的检查帐号存不存在的状况
js 如下这样写
$.ajax({
type:"GET",
url:"ask_account.php",
data:{account:mail},
dataType:"html",
async: false,
success:function(ret){
if(ret=="1") {
$("#nt_msg").html("帐号已存在");
} else {
$("#nt_msg").html("帐号可使用");
}
}
});
而 php 档的部分
$get = $_GET;
$mail = $get["account"];
if(isIDExist($mail)) { // isIDExist 检查存在而已
echo "1";
} else {
echo "0";
}
我在 Chrome , Firefox , Opera 都可以正常跑出存在的结果
但在 IE9 的状况则是 ret 不管怎麽用都是 undefined
是过 $.get 的方式也一样
对於这种状况该如何修正~"~...
* 我尝试过把档案传到 SERVER 上的结果也是一样
--
[There's no undo in your life]
●~ ●~ ●~ ●~ ●~ ●~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.186.193
1F:推 glennchen:cache:false??? 06/17 23:44
2F:→ kerash:一样的结果~@@ 06/17 23:54
3F:推 s25g5d4:改成ret.responseText 06/17 23:56
4F:→ kerash:会回传 undefined 06/17 23:57
5F:推 IDL:为何不用json格式 06/17 23:57
6F:推 s25g5d4:嗯..不对 问题不是这个 06/17 23:58
7F:→ kerash:我只回传0/1 用json会比较好吗.. 06/17 23:58
8F:推 IDL:php 应该有 json_encode 06/18 00:00
9F:→ kerash:回传一样是undefined,json一样 06/18 00:07
10F:推 bibo9901:@@ 我测很正常 06/18 01:20
11F:→ bibo9901:在 success callback 里面 alert(ret) 是 undefined? 06/18 01:21
13F:→ epenpal:forum.jquery.com/topic/fix-jquery-ajax-errors-in-ie 06/18 04:26
14F:→ kerash:to bibo9901 我是 undefined 没错.. 06/18 09:00
15F:→ kerash:to epenpal: 谢谢,我回去测试看看,是因为我直接echo没有 06/18 09:01
16F:→ kerash:加入<html><meta>讯息导致的问题罗... 06/18 09:01
17F:推 epenpal:网页好像不是这样写的吧、有什麽 meta 吗? @ @ 06/18 10:05
18F:→ kerash:我php档除了 echo 0 / 1 以外没有任何输出@@ ... 06/18 10:17
19F:→ kerash:除了 include 一些 function 以外 06/18 10:17
20F:→ kerash:另外我直接用网址连到 ask_account.php 输出也是只有 0 / 1 06/18 10:18
把我的 ask_account 丢出来测试好了 ..
http://www.sunlin.org.tw/yjrivers/ask_account.php?account=xxxxx
基本上就是这页了。
(别偷看其他页就好QQ.. 我的 desinger 是用 dw 套画面,相容性很低,没时间改)
21F:推 Ageis:你有开f12检查吗? 06/18 12:55
22F:→ kerash:有,f12没有显示错误,用中断点一行一行跑也没有什麽特殊 06/18 14:04
23F:→ kerash:状况(不过jquery的ajax我就没仔细看..) 06/18 14:04
24F:→ kerash:把ret抓出来是写 error 没有资料 06/18 14:05
25F:推 jimpop:我有这样试过後~~其实用alert(ret);後发现... 06/18 14:54
26F:→ jimpop:IE会显示 "0" CHOREM则显示 0 所以IE一直无法判断 06/18 14:54
27F:→ jimpop:"0" 等於 0 06/18 14:55
28F:推 jimpop:可以将datatype改成 json看看~~IE跟CHROME都可以传回0.. 06/18 15:04
29F:→ kerash:我使用 IE 的 alert ret 显示 undefined, CHROME 正常 06/18 15:20
30F:→ kerash:使用过 json 的方式再 chrome 也正常,IE则一样undefined 06/18 15:20
31F:推 jimpop:怪了@@我的很正常耶@..会不会是HTML码的问题? 06/18 15:29
33F:→ jimpop:可以参考看看~~ 06/18 15:29
34F:→ jimpop:仿造你的环境用的! 06/18 15:29
http://www.sunlin.org.tw/yjrivers/newaccount.php
给大家测试一下好了~"~
帐号用
[email protected]
CHROME 底下会显示 帐号已存在
IE 底下就会显示 帐号可使用
实际上这个帐号是存在的~"~...
---
我在家了,上面测试依旧失败
另外我直接使用 $.ajax 读自己的 index ,
$.ajax({ url:"index.php", type:"get", success:function(rett) { alert(rett);
}});
一样是回 undefined...= ="
※ 编辑: kerash 来自: 114.32.186.193 (06/18 20:09)
35F:→ kerash:刚刚测一下,如果 url是html,就会成功,php就会失败.. 06/18 20:18
36F:推 jimpop:我猜应该是本档的问题....因为~~引用同一档案我的OK~你的 06/18 22:57
37F:→ jimpop:整串复制下来~~把JQUERY改成跟我一样的~回来还是空值... 06/18 22:58
38F:→ jimpop:尝试中.... 06/18 22:58
39F:→ kerash:囧,如果有错误讯息则是会印的出回传 .. 没错误就失败 06/18 23:04
找到解答了 ...
我的 CONFIG 里面有这行
header("Content-type: text/html; charset=utf8");
UTF8->UTF-8....
= ="
所以错误不是在语法,是PHP打错
※ 编辑: kerash 来自: 114.32.186.193 (06/18 23:10)
40F:推 jimpop:恭喜解决了~~~可是我刚刚尝试中遇到很奇怪的问题.... 06/18 23:15
41F:→ jimpop:要求的AJAX档案~~竟然一直读快取...值永远不会变.... 06/18 23:15
42F:→ jimpop:我也觉得很奇怪.....不过主问题解决就好了~这也不想管.. 06/18 23:16
43F:→ kerash:QQ,会不是会 cache false 没设? 06/18 23:16
44F:→ kerash:好像不太可能= = 06/18 23:16
45F:→ bibo9901:原来也在想会不会是编码的问题...没想到还真的是 06/19 00:34
46F:→ kerash:就一时笔误没发现QQ 因为都手打偶尔都会少按一个键XD 06/19 09:10
47F:→ kerash:如果不是因为有档案不存在的error被丢回来,我还真的找不到 06/19 09:11
48F:→ kerash:主要哪边出问题 囧" 06/19 09:11