我是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。
有人可以帮助我吗?
答案 0 :(得分:0)
这是因为名为Same Origin Policy的浏览器限制。它可以防止javascript将ajax请求发送到与加载位置不同的域。
在您的情况下,您尝试访问托管在http://www.w3schools.com
的资源(http://www.w3schools.com/jquery/demo_test.txt),但发送请求的页面不是来自同一域的原因,这就是ajax请求无效的原因。< / p>
如果您查看浏览器的控制台,您可能会看到同样的错误。
同源策略的解决方案是使用jsonp(What is JSONP all about?),但约束是服务器应该支持jsonp。
答案 1 :(得分:0)
将loginUrl