我在使用jQuery从random.org请求随机数时遇到问题。当我使用静态页面和以下javascript时,我没有任何问题得到随机数。但是,我正在Heroku上托管一个Sinatra应用程序(同样,当使用Thin在本地生产我的应用程序时)我得到“(Access-Control-Allow-Origin”不允许“(网站)”。
function raffler(){
var rowCount = $('#winnerTable tr').length;
$('#winnerButton').click(function() {
$.get("http://www.random.org/integers/?", {num: "1", min: "1", max: rowCount, col: "1", base: "10", format: "plain", rnd: "new"}, function(randNum) {
var myNumber = randNum;
$("#entry-" + randNum).addClass('winner');
});
});
};
思想?
答案 0 :(得分:3)
好吧,快速检查一下,random.org不会返回任何 CORS标头。这解释了为什么不允许您通过网站上的Javascript请求它。
您是否在本地加载了静态文件,即通过file:///
协议?还有其他安全措施,浏览器通常允许跨域AJAX。
答案 1 :(得分:1)
老实说,我不知道你怎么能以任何方式做到这一点。因为你不应该这样做。 Access-Control-Allow-Origin是一种XSS保护,可以阻止跨域请求,是大多数客户端脚本引擎(例如Flash)的一部分。使用以下内容生成随机数:
Math.random()
答案 2 :(得分:0)
使用jQuery YQL插件从此页面获取结果。
它通过使用Yahoo服务来获取所需页面的内容来绕过原点检查。
http://plugins.jquery.com/project/jquery-yql-plugin
但这是非常复杂的方式。你为什么不使用Math.random()?