我很难找到关于用我的应用程序做JSONP的公认方法的一些基本信息......
让我解释一下,说我有一个在json中提供响应的应用程序(App A),如何使用来自不同站点的jQuery调用该脚本,并加载该JSON数据?我很确定我可以链接到应用程序A上的JS文件并使用它来将数据加载到页面中,但除此之外,我对这样做的适当约定有点迷失...任何帮助都是非常感谢,即使只是指着我正确的方向或文章会很棒。
答案 0 :(得分:8)
这真是太微不足道了。
在客户端,您通常使用'jsonp'类型执行ajax请求。
$.ajax({
dataType: 'jsonp',
success: function(response) {
}
});
在服务器端,您可以返回这样的数据
'/**/' + params[:callback] + '("' + response + '");';
它会产生/**/callback_name("my_response");
之类的东西。 my_response
字符串将由jquery传递给ajax成功处理程序。
您也可以返回json对象和数组,例如callback_name([1, 2, 3]);
修改强>
流程将是这样的。
callback
参数。还有一个wikipedia article,如果对jsonp有什么困惑。
2015年编辑 请注意,由于存在安全漏洞,Rails改变了他们执行此操作的方式。它们预先挂起了带有JavaScript注释的函数调用,我将其添加到上面的代码中。 This is the code change in question.