【问题标题】:SyntaxError: unterminated string literal javascript consoleSyntaxError:未终止的字符串文字 javascript 控制台
【发布时间】:2021-04-27 17:56:57
【问题描述】:

我正在创建一个 Javasript 对象:

var obj= new Object();
obj.Message = $(".textarea").val();

并通过 JSON stringify 发布此对象:

$.ajax({
    type: "POST",
    contentType: "application/json",
    dataType: "json",
    url: 'xx/yy',
    data: JSON.stringify(obj),
    success: function (html) {
        // ...
    },
    error: function (request, status, error) {
        // ...           
    }
});

我得到:

SyntaxError: 控制台中未终止的字符串文字

我应该换什么?

编辑:

此问题特定于用户在纯文本区域(非富文本区域)中输入的数据

【问题讨论】:

  • 你可以点击错误,它会引导你到错误源行。
  • 这段代码似乎没有任何问题。这是你所有的代码吗?
  • 不是你的问题,但是:dataType: "json",data: JSON.stringify(obj), 是错误的......dataType: "json", data:obj, 你是金子
  • 您好,感谢您的回复,问题似乎在数据中。我正在使用计划 textarea 来获取价值用户已经输入了一些字符,因为它的破坏。

标签: javascript jquery html ajax


【解决方案1】:

这可能是您的值有一些换行符或一些无效的字符串文字。您可以像这样替换 textarea 值的换行符。

var str = $('#textarea1').val();
str = str.replace(/(?:\r\n|\r|\n)/g, ''); 

这是完整的代码sn-p,你可以检查一下。希望您在执行 JSON.stringify(obj) 时可以摆脱“SyntaxError: unterminated string literal”。

<!DOCTYPE html>
<html>
	<head>
		<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
	</head>
	<body>
		<textarea id="textarea1" rows="4" cols="50">
		</textarea>
		<input type="button" value="Check" id="btnCheck"/>
		
		<script>
			$(document).ready(function(){
			
				$('#btnCheck').on('click',function(){
				
					var str = $('#textarea1').val();
					str = str.replace(/(?:\r\n|\r|\n)/g, ''); 
					var obj= new Object();
					obj.Message = str;
					
					console.log(JSON.stringify(obj));
					
				});
			});
		</script>
	</body>
	
	
</html>

【讨论】:

    【解决方案2】:

    使用模板文字 ``,在 ECMAScript 2015 环境中受支持

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 2022-06-10
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多