【发布时间】:2016-05-30 22:08:40
【问题描述】:
调用多个函数时出现 JSON 错误
错误 - Uncaught SyntaxError: Unexpected token ' in JSON at position 0
我在 jquery 中调用了多个函数,但它给出了错误,我尝试了很多方法,但错误得到了改变,但它不起作用我应该怎么做。
HTML
<div id="div1">
<input type="submit"onclick='Function1()'>
<input type="text" value="Text1" id="input1">
<input type="text" value="Text2" id="input2">
</div>
<div id='div2'></div>
jQuery
function Function1(){
var input1 = $("#input1").val();
var input2 = $("#input2").val();
var datajson = { "input1" : input1, "input2" : input2 };
var data = "'"+JSON.stringify(datajson)+"'";
Post_Funtion('testpost.php',data,'$("#div2").html(html);')
}
function Post_Funtion(URl,DATA,FUNCTION){
var url = encodeURIComponent(URl);
var data = JSON.parse(DATA);
$.ajax({
type: "POST",
url: url,
data: data,
cache: false,
success: function(html) {
eval(FUNCTION);
}
});
}
【问题讨论】:
-
删除
JSON.stringify()周围的"'"。单引号在 JSON 字符串中无效。 – 虽然,没有必要在之后立即stringify()只对parse()。您可以将Object本身作为参数传递。 -
您似乎认为只有字符串可以作为参数传递给函数。按原样传递
data和您的回调函数,无需将它们转换为字符串并在被调用者中解析。 -
此外,JavaScript 中的函数可以像任何其他值一样使用和传递。因此,
FUNCTION可以是 actualfunction–Post_Function(..., function (html) { $("#div2").html(html); })– 稍后使用FUNCTION(html);甚至success: FUNCTION调用,而不需要eval()。
标签: javascript jquery json