简单的jQuery ajax调用不适用于rails

时间:2013-03-07 04:31:16

标签: jquery ruby-on-rails-3.2

我是Rails的新手,我试图在application.js中进行非常简单的ajax调用。

以下是代码:

function login(loginUrl) {
    alert(loginUrl);

    $.ajax('http://www.w3schools.com/jquery/demo_test.txt', {success: function (result) {
        alert(result);
    }});
}

调用该函数时,第一个警报效果很好。但是,似乎以下ajax调用永远不会通过,第二个警报永远不会执行。我在w3school.com上试过这个代码,效果很好。我真的很困惑为什么这个简单的代码不适用于Rails。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

这是因为名为Same Origin Policy的浏览器限制。它可以防止javascript将ajax请求发送到与加载位置不同的域。

在您的情况下,您尝试访问托管在http://www.w3schools.com的资源(http://www.w3schools.com/jquery/demo_test.txt),但发送请求的页面不是来自同一域的原因,这就是ajax请求无效的原因。< / p>

如果您查看浏览器的控制台,您可能会看到同样的错误。

同源策略的解决方案是使用jsonpWhat is JSONP all about?),但约束是服务器应该支持jsonp。

答案 1 :(得分:0)