0

私は本当に混乱しているこのLaravel 4の問題を抱えています。これら 2 つのメソッドを同じコントローラーで作成しました。コントローラは安静であると宣言されています。ajax リクエストは別のドメインからのものです。

動作しません

public function getOwnlist(){
    $test = User::with(array("images", "images.category"))->find(Auth::user()->id);
    return Response::json($test, 200, array('Access-Control-Allow-Origin' => '*'));
}

作品

public function getLatest(){
        $images = DB::table("images")->where("public","=","1")->orderBy("created_at")->take(10)->get();
        return Response::json($images, 200, array('Access-Control-Allow-Origin' => '*'));
}

ブラウザは、標準のクロス ドメイン エラーを受け取ります。

4

1 に答える 1

3

この例は私にとってはうまくいきます。これを試してみてください。

public function getOwnlist(){
   $images = User::with('images.category')->find(Auth::getUser()->getAttribute('id'));
   return Response::json($images, 200, array('Access-Control-Allow-Origin' => '*'));
}

また、各レスポンスでヘッダーを設定するのではなく、Controller Base のコンストラクターでそれらを設定することを強くお勧めします。または、API を提供し、そこから拡張するためだけに作成することもできます。

次のようになります。

protected $response; // This is a global variable on you BaseController

// This goes on your BaseController constructor 
$this->response = Response::make();
$this->response->headers->add(array('Access-Control-Allow-Origin', '*');

jQuery の使用中に Cross Domain AJAX でいくつかの問題が見つかりました。使用する代わりにドメインを指定した場合にのみ機能します*

Eloquent モデルの詳細: http://laravel.com/docs/eloquent#querying-relations

于 2013-09-30T15:10:10.117 に答える