Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails后端未正确接收具有JSON负载的Crossrider ajax post请求_Javascript_Ruby On Rails_Ajax_Json_Crossrider - Fatal编程技术网

Javascript Rails后端未正确接收具有JSON负载的Crossrider ajax post请求

Javascript Rails后端未正确接收具有JSON负载的Crossrider ajax post请求,javascript,ruby-on-rails,ajax,json,crossrider,Javascript,Ruby On Rails,Ajax,Json,Crossrider,我有一个要发布到远程服务器(Rails)的JSON对象。当POST参数被转换为url编码字符串时,所有将其作为“application/json”发送到服务器的尝试都失败。 例如: appAPI.request.post({ url: "http://mybackend", postData: {hello: 'world', foo: 'bar'}, onSuccess: function(response) { console.log("postback succeede

我有一个要发布到远程服务器(Rails)的JSON对象。当POST参数被转换为url编码字符串时,所有将其作为“application/json”发送到服务器的尝试都失败。 例如:

appAPI.request.post({
  url: "http://mybackend",
  postData: {hello: 'world', foo: 'bar'},
  onSuccess: function(response) {
    console.log("postback succeeded with response: " + response)
  },
  onFailure: function(httpCode) {
    console.log("postback failure: " + httpCode)
  },
  contentType: 'application/json'
});
返回HTTP 500,服务器通过格式不正确的JSON对象进行投诉:

Error occurred while parsing request parameters.
Contents:

MultiJson::LoadError (784: unexpected token at 'hello=world&foo=bar'): 
  /Users/hammady/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/json/common.rb:148:in `parse'
  ...
我还应该做什么才能将JSON对象发送到Rails后端?

用于对发布的数据进行字符串化

appAPI.request.post({
  url: "http://mybackend",
  postData: JSON.stringify({hello: 'world', foo: 'bar'}),
  onSuccess: function(response) {
    console.log("postback succeeded with response: " + response)
  },
  onFailure: function(httpCode) {
    console.log("postback failure: " + httpCode)
  },
  contentType: 'application/json'
});
用于对已发布的数据进行字符串化

appAPI.request.post({
  url: "http://mybackend",
  postData: JSON.stringify({hello: 'world', foo: 'bar'}),
  onSuccess: function(response) {
    console.log("postback succeeded with response: " + response)
  },
  onFailure: function(httpCode) {
    console.log("postback failure: " + httpCode)
  },
  contentType: 'application/json'
});

您需要首先对对象进行字符串化

postData: JSON.stringify({hello: 'world', foo: 'bar'});

您需要首先对对象进行字符串化

postData: JSON.stringify({hello: 'world', foo: 'bar'});

阅读此链接。LMK如果有什么不清楚的地方,试着先把物体串起来。postData:JSON.stringify({hello:'world',foo:'bar'})@Bnaya这解决了我的问题,请添加它作为解决方案!完成:阅读此链接。LMK如果有什么不清楚的地方,试着先把物体串起来。postData:JSON.stringify({hello:'world',foo:'bar'})@Bnaya这解决了我的问题,请添加它作为解决方案!完成: