首頁 web前端 js教程 Jquery使用Firefox FireBug外掛程式調試Ajax步驟解說_jquery

Jquery使用Firefox FireBug外掛程式調試Ajax步驟解說_jquery

May 16, 2016 pm 05:11 PM
ajax firefox jquery

首先,我們用一個範例來說明JQuery的Ajax呼叫過程,

實現的一個功能是:點擊確認支付按鈕之後,實現餘額支付的功能:

1.首先在php頁面將相關需要呼叫的函數綁定到按鈕上:

複製程式碼 程式碼如下:

$(function(){

    $("#pay_btn").bind("click",ABC.balancePay);

});

2.腳本處:

如果使用$.post方式實作:

複製程式碼 程式碼如下:

var ABC = {

    balancePay: function(event){

        event.preventDefault();

        var tthis = $(event.currentTarget);

        var form = tthis.parents(‘form');

        var url = form.attr(‘action');

        var data = ‘code=15′ ;// $(‘#verifyCode').val();

        var jqXhr = $.post(url, data, undefined, ‘jsonp');

        jqXhr.done(function(datas){

                //console.log(‘這裡是由console印製出來的'); //#4

                $("#msg").text(‘結果:'data);

});

}

$.post方式也可以直接指定回呼函數:

複製程式碼 程式碼如下:

var jqXhr = $.post(url,url, function (data){

            $("#msg").text('結果:' data);

}, 'jsonp');

使用$.ajax方法實作:

複製程式碼 程式碼如下:

var jqXhr = $.post(url,url, function (data){

            $("#msg").text(‘結果:' data);

}, ‘jsonp');

使用$.ajax方法實作:

複製程式碼 程式碼如下:

var jqXhr = $.ajax({var jqXhr = $.ajax({

var jqXhr = $.ajax({

var jqXhr = $.ajax({

var jqXhr = $.ajax({

            type: ‘post',

            url: url,

            data: {code: ‘15′},

            dataType: ‘jsonp',

            sccuess:function(data){

            alert(‘good');},

            error: function(XMLHttpRequest, textStatus, errorThrown) {  //#3這個error      alert(XMLHttpRequest.status);

                     (XMLHttpRequest.readyState);

                           },

});

3.伺服器端:

複製程式碼
程式碼如下:

public function actionInterPayProc($callback)

{

//header("content-type: text/javascript");

//header(‘Content-type: text/html; charset=utf-8′);

         $code = $_POST['code'];

        //$code  //#1 此处给出一个有语法错误的表达式

        //echo $code;  //#2  此处标记,用于后面调试说明;

        …

        $result = 1;

            //echo $_POST['callback']. ‘(‘ . json_encode($result) . ‘);';//注意使用的编码方式需要和客户端请求保持一致;

exit(0);

}



调试工具

Firefox有强大FireBug 插件,现在比较新的浏览器如 Chrome 和 Safari,以及 IE 8都内置了调试工具,借助于这些调试工具,可以非常详细的查看 Ajax 的执行过程(chrome和firefox中调出调试工具的快捷键是ctrl+shift+c);
以下使用FireBug;


1.使用firebug,查看回调:

对于Ajax方法,是通过异步执行的服务器端程序,如果服务器端出错,在页面上不会显示的,我们需要借助调试工具来查看;例如,将以上示例中#2的注释去掉,触发ajax请求一次,可以在控制台面板中查看到错误的返回结果:

Jquery使用Firefox FireBug外掛程式調試Ajax步驟解說_jquery
 

如果是伺服器端程式出錯,也可以直接看到,出錯原因跟一般普通的頁面一樣,只不過是在ajax返回的面板中查看(web瀏覽器頁面中不會有任何顯示)。
這裡需要說明的是,如果在伺服器端使用了echo等方法將需要查看的變數列印出來了,那麼,ajax呼叫的結果一定是失敗的,因為這樣看上去的回調函數名稱被更改了,造成無法解析;

例如,列印的變數是333,那麼最後回呼的結果是:333ajaxcallbak(1);客戶端尋找333ajaxcallbak這個函數名,無法解析。

2.使用error函數列印錯誤訊息:

$.ajax()有一個error參數,可以指定一個函數,在請求失敗時,將呼叫此方法。這裡給出的信息,對於調試來說,非常有用;

error:function (XMLHttpRequest, textStatus, errorThrown)

error事件回傳的第一個參數XMLHttpRequest有一些有用的資訊:

XMLHttpRequest.readyState:

其傳回的狀態碼對應了一個錯誤說明:

狀態碼

0 -(未初始化)還沒有呼叫send()方法

1 -(載入)已呼叫send()方法,正在傳送請求

2 -(載入完成)send()方法執行完成,已經接收到全部回應內容

3 -(互動)正在解析回應內容

4 -(完成)回應內容解析完成,可以在客戶端呼叫了

XMLHttpRequest.status:

這裡回傳的狀態碼就是我們日常見到的HTTP狀態;例如404,表示沒有找到頁面;

textStatus:

"timeout", "error", "notmodified" 和 "parsererror"。

(默 識別: 自動判斷 (xml 或 html)) 請求失敗時呼叫時間。參數有以下三個:XMLHttpRequest 物件、錯誤訊息、(可選)擷取的錯誤物件。如果發生了錯誤,錯誤訊息(第二個參數)除了得到null之外,還可能是"timeout", "error", "notmodified" 和 "parsererror"。

透過這個error函數,程式出​​錯就很容易排查;

例如上面的#2處,去掉註釋,相當於更改了回呼函數名稱;在erro裡就會報:parsererror;

3.使用console.log印輸出:(alert()也可以)

這只是一個增強調試體驗的輔助方法。對於js中的關注變數跟踪,我們可透過alert()方法列印出來,不過彈出框頻繁會讓人煩躁。 console.log是一個替代方式,它是firebug插件的一個方法。 console.log印出來的變數結果會顯示在firebug的控制檯面板中;

可能的出錯原因:

1.如果回傳的結果格式不正確,在firebug中能看到結果;

2.對於JSON請求,對格式比較嚴格:

如果透過error函數打出來的報錯是:parsererror

可能的原因是伺服器端腳本編碼的問題;可以在服務端處理函數內處理的第一行加上對應的header資訊:

eg:header('Content-type: text/html; charset=utf-8');

當然,最有可能的是格式不正確:

複製程式碼 程式碼如下:

echo "{'re':'success'}" ;jquery不能解析
echo "{"re":"success"}";就沒有錯誤

不要輸出怪異的json格式的字串,要不jq1.4 版本不會執行success回呼。如{abc:1}或{'abc':1},要輸出

複製程式碼 程式碼如下:

{"abc":1}

{'success':true}改為{"success":true}

 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
PHP 與 Ajax:建立一個自動完成建議引擎 PHP 與 Ajax:建立一個自動完成建議引擎 Jun 02, 2024 pm 08:39 PM

使用PHP和Ajax建置自動完成建議引擎:伺服器端腳本:處理Ajax請求並傳回建議(autocomplete.php)。客戶端腳本:發送Ajax請求並顯示建議(autocomplete.js)。實戰案例:在HTML頁面中包含腳本並指定search-input元素識別碼。

jQuery中如何使用PUT請求方式? jQuery中如何使用PUT請求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

如何使用Ajax從PHP方法取得變數? 如何使用Ajax從PHP方法取得變數? Mar 09, 2024 pm 05:36 PM

使用Ajax從PHP方法取得變數是Web開發中常見的場景,透過Ajax可以實作頁面無需刷新即可動態取得資料。在本文中,將介紹如何使用Ajax從PHP方法中取得變量,並提供具體的程式碼範例。首先,我們需要寫一個PHP檔案來處理Ajax請求,並傳回所需的變數。下面是一個簡單的PHP檔案getData.php的範例程式碼:

jQuery小技巧:快速修改頁面所有a標籤的文本 jQuery小技巧:快速修改頁面所有a標籤的文本 Feb 28, 2024 pm 09:06 PM

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:&lt

使用jQuery修改所有a標籤的文字內容 使用jQuery修改所有a標籤的文字內容 Feb 28, 2024 pm 05:42 PM

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

PHP 與 Ajax:建立動態載入內容的解決方案 PHP 與 Ajax:建立動態載入內容的解決方案 Jun 06, 2024 pm 01:12 PM

Ajax(非同步JavaScript和XML)允許在不重新載入頁面情況下新增動態內容。使用PHP和Ajax,您可以動態載入產品清單:HTML建立一個帶有容器元素的頁面,Ajax請求載入資料後將資料加入到該元素中。 JavaScript使用Ajax透過XMLHttpRequest向伺服器傳送請求,從伺服器取得JSON格式的產品資料。 PHP使用MySQL從資料庫查詢產品數據,並將其編碼為JSON格式。 JavaScript解析JSON數據,並將其顯示在頁面容器中。點選按鈕觸發Ajax請求,載入產品清單。

了解jQuery中eq的作用及應用場景 了解jQuery中eq的作用及應用場景 Feb 28, 2024 pm 01:15 PM

jQuery是一種流行的JavaScript庫,被廣泛用於處理網頁中的DOM操作和事件處理。在jQuery中,eq()方法是用來選擇指定索引位置的元素的方法,具體使用方法和應用場景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開始計數,即第一個元素的索引是0,第二個元素的索引是1,依此類推。 eq()方法的語法如下:$("s

PHP 與 Ajax:提升 Ajax 安全性的方法 PHP 與 Ajax:提升 Ajax 安全性的方法 Jun 01, 2024 am 09:34 AM

為了提升Ajax安全性,有幾種方法:CSRF保護:產生令牌並將其傳送到客戶端,在請求中新增至伺服器端進行驗證。 XSS保護:使用htmlspecialchars()過濾輸入,防止惡意腳本注入。 Content-Security-Policy頭:限制惡意資源加載,指定允許載入腳本和樣式表的來源。驗證伺服器端輸入:驗證從Ajax請求接收的輸入,防止攻擊者利用輸入漏洞。使用安全Ajax函式庫:利用jQuery等函式庫提供的自動CSRF保護模組。

See all articles