我想使用getJSON()方法进行跨域检查我正在使用以下
<script>
jQuery.getJSON("http://localhost:3003/home/unique_email/1?email=example@gmail.cmo&callback=result",
{
format: "jsonp"
},
function(result) {
alert(result.text)
});
</script>
def unique_email
count = User.count(:all, :conditions => ['email = ?',params[:email]] )
result = Hash.new()
if count > 0
result[:text] = "false"
else
result[:text] = "true"
end
respond_to do |format|
format.json {
render :json => result
}
end
端
我在同一个域中收到警报,这意味着我在我的应用程序中收到警报但是在将代码放在一边时,应用程序意味着我没有得到任何错误但是应用程序操作被调用..但我不是从应用程序获得任何响应。
任何帮助将不胜感激。
谢谢&amp;的问候,
Ramanavel Selvaraju。
答案 0 :(得分:0)
我找到了答案,
Wen需要在应用程序控制器中添加render_json方法。
private
# render json, but also allow JSONP and handle that correctly
def render_json(json, options={})
callback, variable = params[:callback], params[:variable]
logger.debug("render json or jsonp? Callback = #{callback}, Variable=#{variable}")
response = begin
if callback && variable
"var #{variable} = #{json};\n#{callback}(#{variable});"
elsif variable
"var #{variable} = #{json}"
elsif callback
"#{callback}(#{json});"
else
json
end
end
render({:content_type => :js, :text => response}.merge(options))
end
所以我们可以在jQuery ajax中将数据类型作为jsonp。