![](/img/trans.png)
[英]Vs Code is marking codes as errors that aren't errors in Laravel. How can I stop it from showing those errors/any errors?
[英]javascript unexpected token < , is there any way I can escape the errors(or atleast skip those useless characters)
在PHP中,我有一个像这样的数组:
$arr['a'] = "some big data so may contain some chars that bring us headache"
$arr['b'] = "some big data same as above"
$data = json_encode($arr)
echo $data
我的JavaScript代码包含一个jquery ajax调用$ .ajax。 它会调用包含上述php代码的文件,因此,成功后,json_encoded(由php返回)将返回到我的javascript变量。 在我的javascript文件中,我正在这样做:
jsdata = JSON.parse(data); //Getting error here
$.ajax({
type: "post",
data: jsdata,
url: "url",
crossDomain: true,
dataType: 'jsonp'
}).done(function(d) {
print("success");
});
从上面的代码中,在jsdata = JSON.parse(data)行中,出现类似以下错误
Error : UNEXPECTED TOKEN <
由于数据包含许多不同的内容,因此获取这些错误是正常的。 他们需要适当地逃脱。 谁能告诉我如何正确地做到这一点。 无论数据是什么,我都不应该对数据出错。
谢谢
好吧,您可能应该知道几件事jsdata = JSON.parse(data);
尝试解析您分配给data
任何json字符串 ,并将其作为JS对象返回。 我认为您想做相反的事情: jsdata = JSON.stringify(data);
此外,由于您使用的是jQuery,因此可以省去以下内容:jQuery会在发送请求之前将数据转换为适当的格式,而无需您自己去解析或字符串化 。
是的你忘记了;
在两行的末尾,因此PHP输出错误,该错误不符合JSON。
总是这样做:
$.ajax({
type: "post",
data: jsdata,
url: "url",
crossDomain: true,
dataType: 'jsonp',
success: function(d) {
print("success");
}
})
这样尝试
这比看起来容易得多。
在对JSON编码并将$data
回显到JavaScript之前,调用urlencode($arr['a'])
和urlencode($arr['b'])
(针对$arr
每个数据值)。 这将对数组中的数据进行URL编码 ,这样就不会造成任何问题。
解析完JSON后,您将不得不在每个大数据值上调用JavaScript函数unescape(string)
。 这将使它们恢复到原来的状态。 这是PHP和JavaScript的超级英雄组合!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.