2011-07-22 29 views
-1

わかりました。AJAXは確かに弱いエリアなので、私は頭の中にいます。私はajax経由でサインアップフォームを別のドメインに送信して処理し、成功/失敗のメッセージを返す必要があるページを持っています。Ajaxフォーム送信

次のコードを使用すると、ページがリフレッシュされ、何も送信されません。

フォームコード:

<form method="post" onSubmit="return submitGetApp();" class="kinkast_signup"> 
    <input id="login_email" type="text" name="to" /> 
    <input id="signInButtonSubmit" type="submit" name="action" value="Send" /> 
</form> 

jQueryのコード:。 $( '#のsignInButtonSubmit')をクリックします(関数(E){

//Get the data from all the fields 
    var number = $('input[name=to]'); 

    //Simple validation to make sure user entered something 
    //If error found, add hightlight class to the text field 
    if (number.val()=='') { 
     name.addClass('hightlight'); 
     return false; 
    } else name.removeClass('hightlight'); 

    //organize the data properly 
    var data = 'number=' + number.val(); 

    //show the loading sign 
    $('p.ajax_message').hide(); 

    //start the ajax 
    $.ajax({ 
     //this is the php file that processes the data and send mail 
     url: "http://video.kinkast.com/getapp", 

     //GET method is used 
     type: "POST", 

     //pass the data   
     data: data,  

     //Do not cache the page 
     cache: false, 

     //success 
     success: function() {    
      $('p.ajax_message').html('Success!'); 
      alert('Worked!');      

      }, 

     //Failure 
     error: function(xhr, status, e) { 
      alert(status, e); 
     } 

    }); 

    //cancel the submit button default behaviours 
    return false; 
}); 

誰かがコードをチェックアウトし、何を参照することができますIまた、ライブを見るには、this link

答えて

0

あなたは別のドメインにajax投稿を投稿できません。

これは、クロスサイトスクリプティング攻撃(XSS攻撃)などを防ぐのに役立ちます。

ACDのようなことを可能にするフレームワークがありますが、ほとんどの場合、私はこのプラクティスをお勧めしません。 http://jsfiddle.net/4tMN3/

あなたは新しい物事のカップルに気付くでしょう:

UPDATE

はここにあなたのコードの作業バージョンです。

まず、jQueryイベントメカニズムを使用してイベントを添付します。

$('#mySubmitForm').submit(function(event){}) 

これは、実際の形式でイベントをハードコードするよりもはるかに好きです。これはむしろ、falseを返すよりも、フォーム(すなわち、提出)のデフォルトの動作を防止するためのpropper jQueryの方法です

event.preventDefault(); 

第二に、あなたはの使用に気付くでしょう。

+0

さえJSONと?心に留めておくと、私はexpがゼロです。 with ajax/json :) - 愚かな質問のお詫び –

+0

また、ページリフレッシュではなく、上記のコードを使用してエラーメッセージが表示されるはずですか? –

+0

返されるタイプに関係なく、このようなクロスサイトリクエストはできません。あなたが周りを検索して回避策を見つけることができますが、私が言うように、制限は良い理由のためにそこにあります。 –

0

プラグインを使用してjquery経由でクロスドメインjsonリクエストを作成する方法があります。これは、YSQLを使用してページダンプをjsonリクエストとして返します。実際にはお勧めしませんが、本当に必要がある場合は可能です。ここにリンクがあります。最新のバージョンについては、彼のgithubへのリンクがあります。私は最近、いくつかのテストのためにそれを使用して、それはすべてうまくいきました。私は一瞬でJSFiddleを取得します。

http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

YQLを経由して投稿ページのカバーもあります: http://www.wait-till-i.com/2009/11/16/using-yql-to-read-html-from-a-document-that-requires-post-data/

例JSFiddle: http://jsfiddle.net/M6X6n/1/

+0

こんにちはヘンリー、答えてくれてありがとう - 本当に感謝しています。 –

+0

私は元の投稿からメインリンクを逃しました、それについて申し訳ありません! – Henry

関連する問題