看板 Ajax作者 kerash (K.T)標題 [問題] 簡單的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
→ kerash:一樣的結果~@@2F 06/17 23:54
推 s25g5d4:改成ret.responseText3F 06/17 23:56
→ kerash:會回傳 undefined4F 06/17 23:57
推 IDL:為何不用json格式5F 06/17 23:57
推 s25g5d4:嗯..不對 問題不是這個6F 06/17 23:58
→ kerash:我只回傳0/1 用json會比較好嗎..7F 06/17 23:58
推 IDL:php 應該有 json_encode8F 06/18 00:00
→ kerash:回傳一樣是undefined,json一樣9F 06/18 00:07
推 bibo9901:@@ 我測很正常
在 success callback 裡面 alert(ret) 是 undefined?10F 06/18 01:20
→ kerash:to bibo9901 我是 undefined 沒錯..
to epenpal: 謝謝,我回去測試看看,是因為我直接echo沒有加入<html><meta>訊息導致的問題囉...14F 06/18 09:00
推 epenpal:網頁好像不是這樣寫的吧、有什麼 meta 嗎? @ @17F 06/18 10:05
→ kerash:我php檔除了 echo 0 / 1 以外沒有任何輸出@@ ...
除了 include 一些 function 以外
另外我直接用網址連到 ask_account.php 輸出也是只有 0 / 118F 06/18 10:17
把我的 ask_account 丟出來測試好了 ..
http://www.sunlin.org.tw/yjrivers/ask_account.php?account=xxxxx
基本上就是這頁了。
(別偷看其他頁就好QQ.. 我的 desinger 是用 dw 套畫面,相容性很低,沒時間改)
推 Ageis:你有開f12檢查嗎?21F 06/18 12:55
→ kerash:有,f12沒有顯示錯誤,用中斷點一行一行跑也沒有什麼特殊狀況(不過jquery的ajax我就沒仔細看..)
把ret抓出來是寫 error 沒有資料22F 06/18 14:04
推 jimpop:我有這樣試過後~~其實用alert(ret);後發現...
IE會顯示 "0" CHOREM則顯示 0 所以IE一直無法判斷"0" 等於 0
可以將datatype改成 json看看~~IE跟CHROME都可以傳回0..25F 06/18 14:54
→ kerash:我使用 IE 的 alert ret 顯示 undefined, CHROME 正常
使用過 json 的方式再 chrome 也正常,IE則一樣undefined29F 06/18 15:20
http://www.sunlin.org.tw/yjrivers/newaccount.php
給大家測試一下好了~"~
帳號用 newculturetalk@gmail.com
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)
→ kerash:剛剛測一下,如果 url是html,就會成功,php就會失敗..35F 06/18 20:18
推 jimpop:我猜應該是本檔的問題....因為~~引用同一檔案我的OK~你的整串複製下來~~把JQUERY改成跟我一樣的~回來還是空值...
嘗試中....36F 06/18 22:57
→ kerash:囧,如果有錯誤訊息則是會印的出回傳 .. 沒錯誤就失敗39F 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)
推 jimpop:恭喜解決了~~~可是我剛剛嘗試中遇到很奇怪的問題....
要求的AJAX檔案~~竟然一直讀快取...值永遠不會變....
我也覺得很奇怪.....不過主問題解決就好了~這也不想管..40F 06/18 23:15
→ kerash:QQ,會不是會 cache false 沒設?
好像不太可能= =43F 06/18 23:16
→ bibo9901:原來也在想會不會是編碼的問題...沒想到還真的是45F 06/19 00:34
→ kerash:就一時筆誤沒發現QQ 因為都手打偶爾都會少按一個鍵XD
如果不是因為有檔案不存在的error被丟回來,我還真的找不到主要哪邊出問題 囧"46F 06/19 09:10
--