2

jquery $.post を使用してサーバーから文字列を取得する必要があります。問題は、そこから responseText を取得できないことです。だから私が走れば

role = $.post('user_helper/return_current_role', {id: 3}, null, "json").responseText;
console.log(role);

私がundefined 試してみると、私は得ます

role = $.post('user_helper/return_current_role', {id: 3}, null, "json");
console.log(role);

オブジェクトを取得しますObject { readyState=1, getResponseHeader=function(), getAllResponseHeaders=function(), more...}。ここで、responceText は、たとえば ですteacher。firebug からコピーされたこの応答は次のとおりです。

readyState
    4

responseText
    "teacher"

status
    200

statusText
    "OK "
4

2 に答える 2

4

非同期であり、コールバック関数があるため、次のようにします。

$.post('user_helper/return_current_role', {id: 3}, function(result) {
    var role = result;
    console.log(role);
}).fail(function(a,b,c) {
    console.log(a);
    console.log(b);
    console.log(c);
});

サーバーから返されるまで、ajax 呼び出しの結果を使用することはできません。
これが非同期呼び出しのしくみです。

編集:

失敗メソッドにチェーンされています。それが何かを教えてくれるかどうかを確認してください。

于 2013-09-15T14:24:41.873 に答える
2

次の方法でも実行できます。

$.post('user_helper/return_current_role', {id: 3}, function(data) {
   var role = data; 
   // Now Do what you need
}, "json");
于 2013-09-15T14:27:34.110 に答える