2011-08-29 4 views
25

に行く:Ajaxが、私はちょうどこのような単純な要求をやろうとしている[オブジェクト%20Object]

$('.asd').change(
     function() { 
      $.ajax({ 
       url: 'http://127.0.0.1/folder/index.php/controller/action/integer', 
       success: function(data){} 
      }); 
     } 
    ); 

このコードはhttp://127.0.0.1/folder/index.phpに行くことにしよう/ controller/[object%20Object]の代わりに404を取得します。オブジェクトをどこから引っ張っていますか?私は単純な文字列を使用しています。

+0

あなたのコンテンツが入力いただきましたか!?あなたのデータはどこですか?これはあなたの完全なAjaxリクエストですか? '$ .ajax'の完全なコードを貼り付けてください – naveen

+0

AJAX経由で提出しようとすると、[%5Bobject%20Object%5D(404 not found)]の重複している可能性があります。(http://stackoverflow.com/questions/10357445/5bobject20object5d-404-not -found-to-submit-to-ajax) –

答えて

4

私は同じ問題を抱えており、答えを探していました。残念ながら、この寄稿者は決して戻って来なかった。私のことは愚かな誤りでした。 Ajaxから戻ったとき、私は誤って予約語の後で変数に名前を付けました。 // myurl/[オブジェクト%20object]今完璧な理にかなって:

$.post('/MyApp.php', { param: 'getLocation' }, 
    function(xml) { 
    location=$(xml).find('Location'); 
    } 
}); 

ページはHTTPにリダイレクトされアヤックスからの復帰時に、次のようにコード化された:ここで私が持っていたものです。

解決方法: "location = $ ..."を "clocation = $ ..."に変更してください この回答がうまくいくと助かります。デバッグするのは難しい作業です。

+2

ここでは関連しません。ユーザーは変数を定義していません。グローバル変数の使用に関するあなたの過ち。 – Eric

+2

Daveが比較的古い質問に何かを載せていたことをちょっと考えてみました。私の問題は、URLの不適切な構築でした。それはおそらくリダイレ​​クトを通じたOPの問題でもあります。あるいは、彼は誤ってコードサンプルから何かを残しました。 – Seth

16

問題は私が$.ajaxの代わりに$.postを使用していたことでした。

// fails: 
$.post({ 
    url: "/example/" + this.id, 
    // ... 
}); 

// works: 
$.ajax({ 
    url: "/example/" + this.id, 
    // ... 
}); 
+2

ええ、 'POST'にタイプを設定しないと、これはhttp GETです –

+4

'$ .ajax({type: 'POST' ...}})'を使って実際にGET - 非常に奇妙な。 '$ .post()'を使って移動し、上記と同じ構文ミスをしました。 '$のために。post() 'の場合、最初のパラメータはURL文字列で、その後にオブジェクトが続きます。これは、' $ .ajax() 'の略式とは少し異なります。乾杯。 – gthmb

5

ajaxは、パラメータマップが必要です。これは把握することは非常に非常に苦痛だったプレイでの作業とjsRoutesを使用して、私にとっては

// fails: 
$.post({ 
    url: "/example/" + this.id, 
    // ... 
}); 

// works: 
$.post("/example/" + this.id); 
1

postは、単一のパラメータを期待しています。

次の構文を使用して問題なくGETプレイ(JavaScriptが)アヤックスを行いますと思われる:(厄介な部分であり、ここでは)しかし

$.ajax(jsRoutes.controllers.MyController.ajax(inurlparam)) 
.done(function(data) { 
    }).fail(function(data) { 
    }) 

...あなたはPOSTにあなたを行いたい場合URLのabsolutURL()メソッドを最初に使用して、投稿時にURLに[object%20Object]を含めないようにする必要があります。 urlやform paramsのデバッグの量は、何が起こっているのか、なぜならそれを示していないようです。私はちょうど真に欲求不満からこのソリューションを "推測"しました。 PS:absolutURL()の末尾に角カッコがあることに注意してください。jsの人々は、ただちにそのハンドルを私に渡すのではなく、その機能を "実行"するようになります。

var url = jsRoutes.controllers.MyController.ajaxPost(inurlparam).absoluteURL(); 
    var formData = $('#form').serialize(); 
    $.ajax({ 
    url: url, 
    type: "POST", 
    data: formData 
    }).done(function(data) { 
    }).fail(function(data) { 
    }) 

これは、Googleが私を導くところ、私はついに実現したら、それは問題を引き起こしていた私のコーディングではないかもしれないです、私はここにこれを答えるよ:)

関連する問題