顯示廣告
隱藏 ✕
※ 本文為 dinos.bbs. 轉寄自 ptt.cc 更新時間: 2012-06-20 00:16:14
看板 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
glennchen:cache:false???1F 06/17 23:44
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:@@ 我測很正常10F 06/18 01:20
bibo9901:在 success callback 裡面 alert(ret) 是 undefined?
epenpal:http://forum.jquery.com/topic/fix-jquery-ajax-errors-i12F 06/18 04:25
epenpal:forum.jquery.com/topic/fix-jquery-ajax-errors-in-ie
kerash:to bibo9901 我是 undefined 沒錯..14F 06/18 09:00
kerash:to epenpal: 謝謝,我回去測試看看,是因為我直接echo沒有
kerash:加入<html><meta>訊息導致的問題囉...
epenpal:網頁好像不是這樣寫的吧、有什麼 meta 嗎? @ @17F 06/18 10:05
kerash:我php檔除了 echo 0 / 1 以外沒有任何輸出@@ ...18F 06/18 10:17
kerash:除了 include 一些 function 以外
kerash:另外我直接用網址連到 ask_account.php 輸出也是只有 0 / 1

把我的 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沒有顯示錯誤,用中斷點一行一行跑也沒有什麼特殊22F 06/18 14:04
kerash:狀況(不過jquery的ajax我就沒仔細看..)
kerash:把ret抓出來是寫 error 沒有資料
jimpop:我有這樣試過後~~其實用alert(ret);後發現...25F 06/18 14:54
jimpop:IE會顯示  "0"    CHOREM則顯示  0    所以IE一直無法判斷
jimpop:"0"   等於   0
jimpop:可以將datatype改成 json看看~~IE跟CHROME都可以傳回0..
kerash:我使用 IE 的 alert ret 顯示 undefined, CHROME 正常29F 06/18 15:20
kerash:使用過 json 的方式再 chrome 也正常,IE則一樣undefined
jimpop:怪了@@我的很正常耶@..會不會是HTML碼的問題?31F 06/18 15:29
jimpop:http://jimpop.sytes.net/test/120618/t1.php
jimpop:可以參考看看~~
jimpop:仿造你的環境用的!

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~你的36F 06/18 22:57
jimpop:整串複製下來~~把JQUERY改成跟我一樣的~回來還是空值...
jimpop:嘗試中....
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:恭喜解決了~~~可是我剛剛嘗試中遇到很奇怪的問題....40F 06/18 23:15
jimpop:要求的AJAX檔案~~竟然一直讀快取...值永遠不會變....
jimpop:我也覺得很奇怪.....不過主問題解決就好了~這也不想管..
kerash:QQ,會不是會 cache false 沒設?43F 06/18 23:16
kerash:好像不太可能= =
bibo9901:原來也在想會不會是編碼的問題...沒想到還真的是45F 06/19 00:34
kerash:就一時筆誤沒發現QQ 因為都手打偶爾都會少按一個鍵XD46F 06/19 09:10
kerash:如果不是因為有檔案不存在的error被丟回來,我還真的找不到
kerash:主要哪邊出問題 囧"

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 197 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇