1

Mootoolsを使用して単純なajaxpostリクエストを送信しようとしていますが、タイトルにエラーメッセージが表示されているだけで、データが正しく送信されていないようです(リクエストはキャンセルされます)。

これがhtmlです:

<form id="form_5" name="form_5" action="someajaxfile.php" onsubmit="jsfunction(this,5);return false;" method="post">....</form>

そして、送信時に呼び出されるjavascript関数は次のとおりです。

function jsfunction(form,eventId) {
        var container = $('form_contents' + eventId);

        form.send({
            update: container,
            evalScripts: true,
            onComplete: function() {
                container.removeClass('ajax-loading');
            }
        });

    }

send関数のようなものを追加しようとしましたheaders: {'X-Request': 'JSON'},が、エラーを変更するものは何もないようです。奇妙なことの1つは、[ネットワーク]タブのChromeで2つのリクエストが表示されることです。

someajax.php
/somefolder
POST
302
Found
text/html
mootools.js:247
Script
354B
0B
2ms
2ms
2ms0


someajax.php
/somefolder
GET
(canceled)
Pending
http://localhost:8888/somefolder/someajax.php
Redirect
13B
0B
0ms
0.0 days

問題は、なぜデータを送信できないのか、何が起こるのか、そしてなぜそれが私の問題に対する良い解決策があるのか​​ということです。

4

2 に答える 2

1

問題は、なぜデータを送信できないのか、何が起こるのか、そしてなぜそれが私の問題に対する良い解決策があるのか​​ということです。

問題は、Chrome+Localと--allow-file-access-from-files制限の組み合わせです。

試すには:

  • コマンド--allow-file-access-from-filesを使用して、「安全な」環境でchrome(dev)でこれらのファイルを実行します。
  • 別のブラウザでファイルを実行する
于 2012-08-21T12:13:42.747 に答える
1

うーん、いくつか試してみたところ、フォーム要素から直接「AJAX」リクエストを行うことはできないと思います(ただし、間違っている場合は、n_nの動作例を確認したいと思います)。

通常、私はRequestのインスタンス(またはその拡張子のいずれか:Request.JSON、Request.JSONP、Form.Request)を使用します。

私はこのようにします:

function myfunction(form){
    new Request({
      url:form.action,
      data:form,
      onSuccess:function(result){
          console.log(result);
      }
    }).send();
    return false;
};

ここでの実用的な例:http://jsfiddle.net/pCUKe/

于 2012-08-21T12:27:52.533 に答える