我正在创建一个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:控制台中未终止的字符串文字


我应该更换什么?

编辑:

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

最佳答案

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

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


这是完整的代码段,以便您可以检查。希望您可以在执行JSON.stringify(obj)时从“ SyntaxError:未终止的字符串文字”中转义。



<!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>

关于javascript - SyntaxError:未终止的字符串文字JavaScript控制台,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41583140/

10-11 20:12