簡體   English   中英

將Javascript對象發送到Rails控制器

[英]Send Javascript object to Rails controller

使用Rails 4和本機Javascript(香草)。

我有以下Ajax調用,該調用返回place對象:

// place.js
function addPlace(place) {
  console.log(JSON.stringify(place));
  var xhr = new XMLHttpRequest();
  xhr.open("POST", "<%= Rails.application.routes.url_helpers.places_path %>", true);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  xhr.setRequestHeader("X-CSRF-Token", CSRF.token());
  xhr.send("place=" + JSON.stringify(place));
}

console.log(JSON.stringify(place)) ,我得到以下JSON:

{"name":"San Francisco","url":"https://maps.google.com/?q=San+Francisco,+CA,+USA&ftid=0x80859a6d00690021:0x4a501367f076adff","utc_offset":-480,"vicinity":"San Francisco","html_attributions":[]}

該參數被發送到Rails控制器:

# places_controller.rb
class PlacesController < ApplicationController
  def create
    abort params[:place].inspect
    @place = Place.find_or_create_by(source_id: params[:source_id])
    @place.save
    head :ok
  end
end

abort params[:place].inspect的行中,它沒有顯示整個負載,而是僅顯示:

"{"name":"San Francisco","url":"https://maps.google.com/?q=San+Francisco,+CA,+USA"

url得到,因為的剝離&&ftid=0x80859a6d00690021:0x4a501367f076adff

問題

我應該如何正確地將Javascript對象(最好是Hash)傳遞給Rails控制器,以便可以將其正確保存在數據庫中?

嘗試:

encodeURIComponent(JSON.stringify(place))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM