7

正直なところ、私はjQueryの完全な初心者であり、今は行き詰まっています。HTMLフォームからphpにデータを送信したいのですが、データベースにデータを追加し、元のHTMLに表示したい値を返します。これが私のコードです:

$.ajax({
  type: "POST",
  url: "http://mysite.com/process.php",
  data: { data: mydata },
  cache: false,
  dataType: "text",
  error: function(jqXHR, textStatus, errorThrown){
        alert(jqXHR.status);
        alert(jqXHR.statusText);
        alert(jqXHR.responseText);
    },
  success: function(data){
        getContentBox().innerHTML = data;
}
});

status= 0、statusText= "error"、空のjqXHRオブジェクトを返しますresponseText。しかし、私のphpは機能しているようで、データがDBに挿入されているのがわかります。私は何が間違っているのですか?

どんな助けでもいただければ幸いです。前もって感謝します!

編集:ChromeコンソールはXMLHttpRequestがhttp://mysite.com/data.phpをロードできないと言っています。Origin http://www.mysite.comは、Access-Control-Allow-Originでは許可されていません。

4

4 に答える 4

1

ShelbyZのコメントは私を解決策に導きました:

絶対 URL を使用しようとすると、ブラウザーが要求の実行を拒否したため、相対 URL として記述する必要がありました。

$.ajax({
  type: "POST",
  url: "process.php",
  data: { data: mydata },
  cache: false,
  dataType: "text",
  error: function(jqXHR, textStatus, errorThrown){
        alert(jqXHR.status);
        alert(jqXHR.statusText);
        alert(jqXHR.responseText);
    },
  success: function(data){
        getContentBox().innerHTML = data;
}
});

ありがとう!

于 2012-05-08T19:48:42.007 に答える
0

これを単純化するために、jquery の組み込みの post 関数を使用してみませんか?

            $.post('http://mysite.com/process.php', mydata, function(data) {
                if (data.status == 1) {
                    getContentBox().html() = data;
                } else {
                    alert(data.status);
                    alert(data.statusText);
                    alert(data.responseText);
                }
            });

あなたのステータス応答が何であるかわからないので、それを編集する必要があるかもしれませんが、これは$('form here').submit(function() {POSTCODEHERE});

于 2012-05-07T18:04:02.250 に答える
0

私も同じ問題を抱えていました。Ajax 関数は 内のボタン (type="submit") にバインドされていた<form>ため、このボタンを押すと常にページがリロードされ、error関数は の代わりに機能しましたsuccess。これがどのように関連しているのか本当にわかりませんが、event.preventDefault()ボタンのアクションリスナーに追加するとうまくいきます。

于 2016-11-28T11:08:53.850 に答える
0

これを試してください(ブラケットを閉じるのを忘れていました):

$.ajax({
  ...
  success: function(data){
    getContentBox().innerHTML = data;
  }
});
于 2012-05-07T13:07:41.713 に答える