我正在尝试将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。我写这个的方式有问题吗?
答案 0 :(得分:2)
您可能必须发送正确的Content-Type标头。
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
答案 1 :(得分:0)
事实证明,问题是,在实际网站上,我指向的网址是而不是在同一个域中。我原以为是。