2011-12-23 17 views
2

私はこのコードに問題があります。私はjQuery関数を実行するページを持っており、要求されたURLのクエリは2 INSERTクエリを実行する関数で使用されていますが、私は1つしか持っていません。関数.ajaxのクロスドメインとmysqlが正しく動作しない

<?php 
    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Headers:X-Requested-With,Host,User-Agent,Accept,Accept-Language,Accept-Encoding,Accept-Charset,Keep-Alive,Connection,Referer,Origin'); 
    header("Access-Control-Allow-Methods: GET"); 

    $db = mysql_connect('localhost','usr','pwd') or die("Database error"); 
    mysql_select_db('db', $db); 

    $dati_arr=explode("|", $termine); 
    $dati_insert['email']=$dati_arr[0]; 
    $dati_insert['pwd']=$dati_arr[1]; 
    $dati_insert['nome']=$dati_arr[2]; 
    $dati_insert['cognome']=$dati_arr[3]; 
    $dati_insert['tipo']=$dati_arr[4]; 

    $query="INSERT INTO ".$table." VALUES ('','".implode("','", $values)."')"; 
    if(mysql_query($query)){$exec="ok";} 
?> 

しかし、私のデータベースに私は2つのレコードを持っている:

JavaScriptコード

$.ajax({ 
    type: "GET", 
    url: "url on different domain", 
    crossDomain:true, 
    cache: false, 
    success: function(html){ 
     alert(html); 
    }, 
error:function (xhr, ajaxOptions, thrownError){ 
        alert(xhr.status); 
        alert(thrownError); 
       },  
    statusCode: { 
    404: function() { 
     alert('page not found'); 
    } 
    } 
}); 

要求されたURLのコードがあります。

+1

私のコメントを読む。http://stackoverflow.com/questions/8375055/fetching-data-through-ajax-using-jquery/8375124#8375124 – JercSi

+0

@Roberto - 私は、私はこれをもっと読みやすくするために最善を尽くしましたが、私は問題が本当に何であるかを理解することは難しいと思っています。クロスドメインのリクエストセキュリティは、単にブラウザがアクセスできる 'レスポンス 'を止め、実際にリクエストされているリクエストURLを止めることはありません。 – isNaN1247

+2

まあ、挿入した例を見せてもらえますか?私は実際にここで本当の問題はajaxだとは思わない。 – khael

答えて

0

あなたのコードはすべて、と書かれていると思われます。です。

ユーザーがボタンを2回押すか、JavaScriptコールが2回呼び出されているなどの理由により、どちらの方法でも、複数のボタンが同時に押されないように保護する必要があります。リクエストが処理されるまで

I)、そして、それはAJAX呼び出しを行う前に偽だことを確認trueに設定する「requestBeingProcessed」のJavaScriptでフラグを持つ:

あなたは、いくつかの手段などのいずれかによってこれを行うことができます。

ii)リクエストを処理している間、この操作を行っているボタンを 'display:none'に設定し、ボタンを少し回転させたアイコンに置き換えます。

iii)ajax呼び出しで渡されるページに一意の識別子があります。その一意の識別子を一度使用してそのボタンを押すだけで送信できます。

私はあなたのajax呼び出しの直前に 'alert'(デバッグ情報)を入れて、イベントが常に2回トリガされているかどうか、またはそれがただのユーザかどうかを調べることができます。保護をクリックし

歓声 ダン

関連する問題