0

我是 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。

有人可以帮我吗?

4

2 回答 2

0

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

在您的情况下,您正在尝试访问托管在但发送请求的页面不是来自同一个域的资源( http://www.w3schools.com/jquery/demo_test.txthttp://www.w3schools.com ) ,这就是ajax请求不起作用的原因.

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

同源策略的一个解决方案是使用jsonpJSONP 到底是什么?),但约束是服务器应该支持 jsonp。

于 2013-03-07T04:36:57.810 回答
0

用你的替换' http://www.w3schools.com/jquery/demo_test.txt 'loginUrl

于 2013-03-07T06:37:52.820 回答