forked from mirrors/LibreTranslate
Properly escape data in the request code
It was only escaping the first quote, all other quotes and other characters that require to be escaped (like line breaks) were not being escaped. JSON.stringify is a good function to handle this.
This commit is contained in:
parent
94c27e3645
commit
64ae20e932
1 changed files with 5 additions and 5 deletions
|
@ -145,9 +145,9 @@ document.addEventListener('DOMContentLoaded', function(){
|
|||
return ['const res = await fetch("' + this.BaseUrl + '/translate", {',
|
||||
' method: "POST",',
|
||||
' body: JSON.stringify({',
|
||||
' q: "' + this.$options.filters.escape(this.inputText) + '",',
|
||||
' source: "' + this.$options.filters.escape(this.sourceLang) + '",',
|
||||
' target: "' + this.$options.filters.escape(this.targetLang) + '",',
|
||||
' q: ' + this.$options.filters.escape(this.inputText) + ',',
|
||||
' source: ' + this.$options.filters.escape(this.sourceLang) + ',',
|
||||
' target: ' + this.$options.filters.escape(this.targetLang) + ',',
|
||||
' format: "' + (this.isHtml ? "html" : "text") + '"',
|
||||
' }),',
|
||||
' headers: { "Content-Type": "application/json" }',
|
||||
|
@ -167,7 +167,7 @@ document.addEventListener('DOMContentLoaded', function(){
|
|||
},
|
||||
filters: {
|
||||
escape: function(v){
|
||||
return v.replace('"', '\\\"');
|
||||
return JSON.stringify(v);
|
||||
},
|
||||
highlight: function(v){
|
||||
return Prism.highlight(v, Prism.languages.javascript, 'javascript');
|
||||
|
@ -407,4 +407,4 @@ function setApiKey(){
|
|||
localStorage.setItem("api_key", newKey);
|
||||
}
|
||||
|
||||
// @license-end
|
||||
// @license-end
|
||||
|
|
Loading…
Reference in a new issue