• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    從測試域名遷移到正式域名,直接將本地的程序上傳到正式服務(wù)器后,發(fā)現(xiàn)UCenter無法正確通信成功。
    線上域名:http://www.ezcx.net
    ucenter: http://www.ezcx.net/UC
    所有涉及到的配置文件都全部正確配置,打開ucenter里的應(yīng)用列表,看到應(yīng)用的狀態(tài)仍然是“無法通信”,于是進(jìn)行了跟蹤。

    程序開發(fā)必不可少的要去調(diào)試。問題可能是多種多樣的,所以需要我們自己能找到解決問題的方法。

    一、通信失敗如何調(diào)試 如下圖所示

    看到這個不要怕,其實(shí)問題遠(yuǎn)沒有你想的那么復(fù)雜

    既然是調(diào)試,就是刨根問底,就是順藤摸瓜,那就先找個到藤

    注:本教程使用Firefox瀏覽器,這里不是給他AD,是Firefox的一系列調(diào)試工具我用的比較熟練

    1、我們先看看“通信失敗”這四個字是怎么來的?

    大家有沒有感覺這個通信失敗或者通信成功是在頁面加載之后才顯示出來的。對這個地方并不是頁面直接輸出的。而是頁面重新去加載js去判斷之后顯示的。

    我們來看這個頁面的源代碼。ie下可以直接點(diǎn)擊右鍵查看源文件,firefox需要選擇 本幀 --》查看幀源代碼。

    之后我們在源代碼中找到剛才顯示通信失敗的那個標(biāo)簽。這個不難吧。如下圖所示

    這個通信狀態(tài)就是圖中高亮的那個js處理的結(jié)果。看上去和正常的js調(diào)用不一樣。別怕,看這個源碼的開始那個js代碼。

    1. 2. 3. 4. 5. 6.

    復(fù)制代碼

    明白了吧。

    2、既然“藤”找到了,那我們就開始“摸”吧

    copy這段代碼直接通過瀏覽器訪問。
     
    這下明白那個通信失敗四個字就來源于此了吧。呵呵。 但是還是不知道為啥失敗啊?

    別急,還沒有摸到瓜,我不喊停你就繼續(xù)摸啊。

    接下來就要在uc的代碼中設(shè)置幾個斷點(diǎn),其實(shí)就是 echo 之后die。 我們來看當(dāng)前的url地址。

    1. http://www.ezcx.net/admin.php?m=app&a=ping&inajax=1&url=http%3A%2F%2Fwww.ezcx.net&ip=&appid=1&random=1377646808

    復(fù)制代碼

    m=app 就代表著這個控制器原型是 app,因?yàn)槭呛笈_的訪問,因此對應(yīng)的就是 ucenter 目錄下的 ./control/admin/app.php

    a=ping 代表著執(zhí)行的是控制器原型中的 onping 方法

    注:這個如果想刨根問底的同學(xué)可以去看入口程序admin.php

    第3/5頁

    好,有向前了一小步,我們打開 ./control/admin/app.php 文件,找到 onping 方法,源碼如下:

    1. 2. 3. 4. 5. 6. 7.

    function onping() {

    $ip = getgpc('ip'); $url = getgpc('url');

    $appid = intval(getgpc('appid'));

    $app = $_ENV['app']->get_app_by_appid($appid); $status = '';

    if($app['extra']['apppath'] && @include $app['extra']['apppath'].'./api/'.$app['apifilename']) {

    8. 9.

    $uc_note = new uc_note();

    $status = $uc_note->test($note['getdata'], $note['postdata']);

    10. } else {

    11. $this->load('note');

    12. $url = $_ENV['note']->get_url_code('test', '', $appid); 13. $status = $_ENV['app']->test_api($url, $ip); 14. }

    15. if($status == '1') { 16. echo

    'document.getElementById(\'status_'.$appid.'\').innerHTML = "'.$this->lang['app_connent_ok'].'";testlink();'; 17. } else { 18. echo

    'document.getElementById(\'status_'.$appid.'\').innerHTML = "
    class=\'red\'>'.$this->lang['app_connent_false'].'";testlink();'; 19. } 20.

    第4/5頁

    21. } 復(fù)制代碼

    這個代碼我就不一一解釋了。用點(diǎn)心,仔細(xì)一點(diǎn)都能看明白。

    我們可以看到這個$status 等于1的時候會輸出通信成功,除此之外輸出通信失敗。 好,那我們直接輸出這個 $status ,看看不等于1的時候他是個什么東東。 在

    1. if($status == '1') {

    復(fù)制代碼

    前面添加一行代碼

    1. echo "\$url = $url
    \n \$status = $status
    \n";die('haha');

    復(fù)制代碼

    好的,斷點(diǎn)也設(shè)置了,之后保存代碼重新去刷新剛才的頁面。

    3、終于快摸到“瓜”了,有點(diǎn)小興奮,原來調(diào)試也不難吧。

    刷新頁面后看到這樣的東東


    哦。原來是我的這個應(yīng)用的訪問地址弄錯了。

    4、摸到瓜了吧,接下來對癥下藥是不是很簡單了。

    記得去掉剛才的調(diào)試代碼

    穩(wěn)定

    產(chǎn)品高可用性高并發(fā)

    貼心

    項(xiàng)目群及時溝通

    專業(yè)

    產(chǎn)品經(jīng)理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽(yù)

    堅持

    10年專注高端品質(zhì)開發(fā)
    • 返回頂部
    中日韩精品无码一区二区三区| 欧洲熟妇精品视频| 麻豆国产在线精品国偷产拍 | 国内精品福利视频| 国产精品v片在线观看不卡| 色妞www精品视频免费看| 国产精品福利网站| 久久免费观看国产精品88av| 精品国自产拍天天拍2021| 久久精品熟女亚洲av麻豆| 久久丫精品久久丫| 国产视频精品免费视频| 99久热re在线精品996热视频| 亚洲精品国产电影| 99精品视频在线观看免费播放 | 精品久久久久久中文字幕无碍| 亚洲精品日韩中文字幕久久久| 精品高潮呻吟99av无码视频 | 久久丫精品久久丫| 国内精品国产成人国产三级| 国产成人精品日本亚洲网址| 在线精品国产一区二区三区 | 精品日产卡一卡二卡麻豆| 久久综合九色综合精品| 亚洲欧洲精品成人久久曰影片| 国产精品林美惠子在线观看| 久久精品国产99国产精品导航| 久久精品国产影库免费看| 久久狠狠一本精品综合网| 日本加勒比久久精品| 国产在线视精品麻豆| 久草精品视频在线播放| 久久精品国产一区二区三区不卡| 亚洲欧洲日韩国产一区二区三区 | 女人国产香蕉久久精品| 久久99国产精品久久99果冻传媒| 亚洲电影日韩精品| 日韩国产欧美亚洲v片| 日韩av无码中文字幕| 日韩三级在线观看视频| 国产精品一区二区三区久久|