【问题标题】:ERROR: bad URI when sending data as JSON with GET method to a Rails resource错误:使用 GET 方法将数据作为 JSON 发送到 Rails 资源时出现错误 URI
【发布时间】:2014-10-30 21:39:43
【问题描述】:

您好,我正在对 RESTful Rails 资源执行 GET 请求,如下所示:

function getGroups(category) { 

  $.ajax({
    type: 'GET',
    url: 'http://localhost:3000/groups.json',
    data: JSON.stringify({"access_token":"569669d8df0456", "category":category }),
    success: function(data) {alert(data)},
    contentType: "application/json",
    dataType: 'json'
  });

});

getGroups("own_groups");



问题是 Webrick 服务器错误如下:

错误的错误 URI `/groups.json?{%22access_token%22:%22569669d8df0456%22,%22category%22:%22own_groups%22}'。


它必须与 JSON 数据的解析方式有关,因为我对另一个没有 JSON 数据的 GET 请求和一个带有 JSON 数据的 POST 请求没有任何问题......



更新:为 POST 请求添加代码(需要 JSON.stringify)

function addGroup(name, description) {
  $.ajax({ 
    type: 'POST',
    url:  'http://localhost:3000/groups.json',
    data: JSON.stringify({"access_token":"569669d8df0456", "group_name":name, "group_description":description}),
    success: function(data) { alert("ok")},
    contentType: "application/json",
    dataType: 'json'
  });
};

addGroup("nice group", "full of people");

【问题讨论】:

    标签: javascript ruby-on-rails json rest webrick


    【解决方案1】:

    不要使用JSON.stringify。简单地说:

    data: {"access_token":"569669d8df0456", "category":category },
    

    另外,你不需要指定完整的url http://localhost:3000/groups.json,可以只是简单的groups.json

    【讨论】:

    • 哇,这速度又快又切中要害。哦,还是你 :) 谢谢!很快接受(需要等待 10 分钟);)。
    • 我使用 JSON.stringify 因为在 POST 方法中我必须使用它,而且数据几乎相同......所以......你能想到为什么我会看到这种不同的行为?
    • 为什么需要使用它? GET 和 POST 方法的请求头数据格式没有区别。
    • 如果我没有在 POST 中使用它就会出错。一旦我再次了解那部分代码,我会尽快为您提供更多详细信息
    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2019-03-04
    • 2014-03-03
    • 1970-01-01
    相关资源
    最近更新 更多