2012-04-26 20 views
0

リモートアプリからJSONデータを取得する方法をJSONデータレンダラー私は私のレールのアプリでコントローラを持って

def show 
@visit = Visit.all 
@count = @visit.first.count unless @visit == [] 
respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @visit.first } 
    format.json {render :partial => "this.json"} 
end 
end 

私私の他のアプリ私は私の見解

からJSON文字列を取得するための簡単なAJAX要求を行いますクロスドメインヘッダの
$.ajax({ 
url: 'http://url.com/show.json', 
success: function(data){ 
    console.log(data); 
    $('#data').html(data); 
} 
});​ 

私が使用私はAjaxのrから戻って何かをgwettingないです

use Rack::Cors do 
allow do 
    origins '*' 
    # regular expressions can be used here 
    resource '/countvisit/*', :headers => :any, :methods => :any 
    # headers to expose 
end 
end 

ラックCORS平等。なぜこれが起こるかもしれないの任意のアイデア?

+0

あなたの部分ファイルは正しく名前が付けられていますか? _this.json.erb? –

答えて

2

実際のjson文字列ではなく、 'this.json'を部分的に表示しようとしています。

代わりにformat.json {render :json=> "this.json"}であってはなりませんか?

+0

今すぐ入手します XMLHttpRequestはhttp://url.com/show.jsonを読み込めません。 Origin http://fiddle.jshell.netは、Access-Control-Allow-Originによって許可されていません。 AMクロスドメインファイルで何かが間違っている – Leon

+0

返信のおかげで、私はURLの最後にコールバックを追加し、代わりにjsonPを取得することで修正しました。 – Leon

+0

こんにちはすべて、私はjsonpを使って問題を解決することができましたが、それはjsfiddleでのみ動作しています。私のホストではまだクロスドメインエラーが出ます。なぜこれが起こることができるか考えてみませんか? – Leon

関連する問題