4

ruby/sinatra serving an "object.to_json" to an ajax request:

  ...
  content_type :json
  adam.to_json
end
#--> #<Human:0x10aa540 @x=68, @y=24, @name="Adam", @age=50>

js with jquery:

...
$("#player").html(data);
...

resulting in div being populated with just "#" character.

console.log(data) shows:

#<Human:0x10aa540 @x=68, @y=24, @name="Adam", @age=50>

So I'm guessing that happens because "<" and other characters are interpreted to html. How can I avoid it and show the object in a web page as it appears on debug console ?

Thanks

4

2 に答える 2

1

それが役立つ場合:

data.replace(/\</gi,"&lt;");

jsfiddle

于 2012-11-04T08:12:23.723 に答える
1

HTML を一時ブロックに追加し、エスケープされたコンテンツを取得することで、ブラウザーに HTML をエスケープするように要求できます。>このようにして、 andだけでなく、すべての HTML マークアップが確実にエスケープされるようにします<

var temp_div = document.createElement('div'); // Create temporary div

temp_div.appendChild(document.createTextNode(data)); // Insert data as Text
data = temp_div.innerHTML; // Get Text escaped

jsフィドル

于 2012-11-04T22:09:09.683 に答える