通过POST调用Rails函数

时间:2011-02-22 19:16:15

标签: javascript ruby-on-rails http-post

我正在尝试将php脚本转换为生活在RoR应用程序中的ruby脚本。这是通过RoR应用程序之外的Javascript块完成的。我已成功通过GET调用RoR应用程序中的函数,但我想使用POST来完成。

也就是说,这有效:

function foo() {
    var uri = "http://localhost:3000/foo/bar?thing1=654&thing2=what";           
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("get", uri, true);
    xmlhttp.send();
}

这不是:

function foo() {
    var uri = "http://localhost:3000/foo/bar";
    var params = "thing1=654&thing2=what";          
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("post", uri, true);
    xmlhttp.send(params);
}

我是否需要做一些不同的工作来使用POST?

实际上传入控制器的参数是:{“controller”=>“foo”,“action”=>“bar”}

更新

奇怪的是,根据firebug的报告,它似乎不是因为某些原因而使用POST而是使用OPTIONS。我写这个的方式有问题吗?

2 个答案:

答案 0 :(得分:2)

您可能必须发送正确的Content-Type标头。

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

答案 1 :(得分:0)

事实证明,问题是,在实际网站上,我指向的网址是而不是在同一个域中。我原以为是。