0

JSON のみをレンダリングする Rails API への AJAX 呼び出しがあり、パーサー エラーが発生し続けます。いろいろ試してみましたが、何もうまくいきません。

これが私のajax呼び出しです

$.ajax('/api/users/show/:id', {
  type: 'GET',
  dataType: 'json',
  contentType: "application/json",
  data: {
    id: 1
  },
  success: function(response) {
    return alert("Hey");
  },
  complete: function(response, textStatus) {
    console.log(response);
    return alert("Hey: " + textStatus);
  }
});

ここに私のAPIメソッドがあります

class UsersController < ApplicationController
    respond_to :json

    def show
        render :json => User.find(params[:id])
    end   

end

私はすべて正しいことをしているようです。サーバーから適切に JSON を出力し、AJAX 呼び出しで JSON を期待される入力として受け取ることを述べています。また、サーバーログで確認でき、200ステータスを出力するため、AJAX 呼び出しはサーバーに適切にヒットします。

問題は、AJAX 呼び出しが成功しないため、必要な応答変数に適切にアクセスできないことです。

4

1 に答える 1

2

を指定するとdataType: 'json'. 返されたデータはすでに JavaScript オブジェクトです。を使用して再度解析しないでくださいJSON.parse。Jquery は、サーバーからの文字列を関数に渡す前に自動的に解析しますsuccesssuccessあなたの場合、サーバーからのJSON文字列が有効ではなく、解析中にjqueryにエラーがあり、関数を呼び出さない可能性があります

于 2013-08-03T08:12:54.290 に答える