2011-02-09 6 views
0

ajaxリクエストの送信に問題があります。私はここで応答Jqueryフォームajaxコールトラブル

を得ることができるかどうかだけ確認するためにかなり単純にそれを設定しようとした

は私のjsです:

$(document).ready(function() { 
     $('#mainform').submit(function() { 
       $.ajax({ 
         type: "POST", 
         url: "processform_ajax.php", 
         data: $(this).serializeArray(), 
         dataType: "json", 
         sucess: function (data) { 
           alert("data" . data); 
           //$("#response").append(data); 
         }, 
         error: function(error, txt) { 
           alert(error.status); 
         } 
       }); 
     }); 
}); 

私のPHPは、単純にこの

<?php 
     $errors = array ('a' => 'TEST!'); 
     echo json_encode($errors); 
?>                                        
です

私はfirebug拡張子でこれを実行しようとすると、私はポストが大丈夫だと思っています。

NS_ERROR_NOT_AVAILABLEそれがprocessform_ajaxを見つけることができないと信じて私をリード:私はこのエラーを見ている応答側で

(私のPHPはちょうど何かをのをエコーので、それは、この時点では問題ではありませ必要があります) .php、しかし、私がurlの絶対URLを試したときは、上記のオプション ""があります。私はまた、ブラウザのアドレスバーを介してPHPスクリプトをヒットし、jsonの応答を得る

手がかりはありますか?

おかげ

+0

Firebugでは、コンソールタブの下矢印をクリックすると、Show XMLHttpRequestsがチェックされていることを確認してください。ajax呼び出しが行くURLを取得する必要があります。 – Scoobler

答えて

1

NS_ERROR_NOT_AVAILABLEは、Firefoxの「バグ/機能」のように見えて、2度コールを送信しようとします。

このように、これは...あなたのコード内でreturn falseを追加してみてください -

$(document).ready(function() { 
     $('#mainform').submit(function() { 
       $.ajax({ 
        ... 
       }); 

       return false; 
     }); 
}); 

この方法は、フォームはあなたのJSコードを通じて提出された後、return falseは防ぐことができますあなたからのボタンを「送信」再度同じリクエストを送信してください。

+0

これはトリックでした。すべてのドキュメントのうち、私はこれを何も言わずに見ました。挫折。 – bonez

0

は、あなたのコード内で、または単にSO上成功事例のタイプミスですか?

+0

私のコードでタイプミスが、それは関係なく動作していませんでした。返品虚偽はそれをしました。 – bonez

関連する問題