【发布时间】:2021-04-23 03:46:08
【问题描述】:
所以,我有一个搜索结果页面,一旦按下按钮就会加载内容。
问题是我返回的呈现的 html 在 json 中变成了解析错误!
我使用以下代码来执行它:
$.ajax({
url: "{{ route('search.post') }}",
type: 'POST',
data: $('#searchForm').serialize(),
dataType: 'json',
context: this,
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
}).done(function( data ) {
$("#results").html(data.results);
$(this).find('i').removeClass('fas fa-spinner fa-spin').addClass('fas fa-search');
$(this).prop('disabled', false);
window.history.pushState(null, data.title, data.url);
}).fail(function(xhr, textStatus, error) {
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
$(this).find('i').removeClass('fas fa-spinner fa-spin').addClass('fas fa-search');
$(this).prop('disabled', false);
});
我的方法,返回一个数组:
return response()->json([
'url' => $url,
'title' => sprintf("%s | %s", $page_title, config('constants.title')),
'results' => $sections['results'],
]);
我的浏览器控制台输出:
OK
sortBy=newest:3702 parsererror
sortBy=newest:3703 SyntaxError: Unexpected token > in JSON at position 1663
at parse (<anonymous>)
at jquery.min.js:1
at l (jquery.min.js:1)
at XMLHttpRequest.<anonymous> (jquery.min.js:1)
而json响应是:
{"url":"vehicle_type=car\/sortBy=newest\/make=3\/radius=1\/","title":"Carros - Alfa Romeo | Standocasi\u00e3o","results":" <div class=\"container\">\n <div class=\"row mb-5\">\n <div class=\"col-lg-9\">\n <h2>Resultados<\/h2>\n <\/div>\n <div class=\"col-lg-3\">\n <select\n name=\"sortBy\"\n id=\"sortBy\"\n aria-label=\"Organizar por\"\n class=\"form-control\"\n >\n <option value=\"\">Organizar por<\/option>\n <option value=\"newest\" >Mais Recentes<\/option>\n <option value=\"lprice\" >Pre\u00e7o: mais baixo<\/option>\n <option value=\"hprice\" >Pre\u00e7o: mais alto\n <option value=\"lkm\" >KMs: menos<\/option>\n <option value=\"hkm\" >KMs: mais<\/option>\n <option value=\"lpower\" >Pot\u00eancia (cv): menor<\/option>\n <option value=\"hpower\" >Pot\u00eancia (cv): maior<\/option>\n <\/select>\n <\/div>\n <\/div>\n\n <div class=\"row\">\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/31FEF3A4B63\/alfa-romeo-giulietta-16jtd\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Giulietta 1.6JTD\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Giulietta 1.6...<\/span>\n <ul class=\"stats\">\n <li>179 850 km<\/li>\n <li>2013<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">11 250 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/0D6CEC8B613\/alfa-romeo-mito-13-jtdm-super-95-cv\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo MiTo 1.3 JTDM SUPER 95 CV\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo MiTo 1.3 JTDM...<\/span>\n <ul class=\"stats\">\n <li>22 000 km<\/li>\n <li>2018<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">16 000 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/11D04E764DD\/alfa-romeo-156-16-spark-120cv\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo 156 1.6 Spark 120cv\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo 156 1.6 Spark...<\/span>\n <ul class=\"stats\">\n <li>160 000 km<\/li>\n <li>2000<\/li>\n <li>Gasolina<\/li>\n <\/ul>\n <div class=\"price\">1 750 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/64699ABD812\/alfa-romeo-gt-19-jtd-m-jet\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo GT 1.9 JTD M-JET\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo GT 1.9 JTD M-...<\/span>\n <ul class=\"stats\">\n <li>249 000 km<\/li>\n <li>2005<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">6 990 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/BCAD9136797\/alfa-romeo-147\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo 147 \" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo 147 <\/span>\n <ul class=\"stats\">\n <li>320 555 km<\/li>\n <li>2005<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">4 000 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/953A805FD5B\/alfa-romeo-giulietta-jtd-distinctive\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Giulietta JTD DISTINCTIVE\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Giulietta JTD...<\/span>\n <ul class=\"stats\">\n <li>120 000 km<\/li>\n <li>2012<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">13 980 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/C2464F3039E\/alfa-romeo-mito-13-jtdm\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo MiTo 1.3 JTDM\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo MiTo 1.3 JTDM<\/span>\n <ul class=\"stats\">\n <li>98 800 km<\/li>\n <li>2014<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">9 900 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/D499B41C08F\/alfa-romeo-giulietta-16-jtd-120cv-super-automatico\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Giulietta 1.6 JTD 120CV SUPER AUTOM\u00c1TICO\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Giulietta 1.6...<\/span>\n <ul class=\"stats\">\n <li>26 526 km<\/li>\n <li>2017<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">19 850 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/CF4A2AA2CDA\/alfa-romeo-giulietta-16-jtdm-super-tct-120cv\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Giulietta 1.6 JTDM SUPER TCT 120CV\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Giulietta 1.6...<\/span>\n <ul class=\"stats\">\n <li>35 000 km<\/li>\n <li>2018<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">20 000 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/11F3A68943A\/alfa-romeo-giulietta-16-jtdm-distinctive\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Giulietta 1.6 JTDm Distinctive\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Giulietta 1.6...<\/span>\n <ul class=\"stats\">\n <li>178 593 km<\/li>\n <li>2013<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">13 900 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/79E67BB8B8C\/alfa-romeo-159-sportwagon-20-jtdm\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo 159 Sportwagon 2.0 JTDm\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo 159 Sportwago...<\/span>\n <ul class=\"stats\">\n <li>174 140 km<\/li>\n <li>2012<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">12 990 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/4CDC1D1A62E\/alfa-romeo-mito-13-m-jet\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo MiTo 1.3 M-Jet\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo MiTo 1.3 M-Je...<\/span>\n <ul class=\"stats\">\n <li>156 719 km<\/li>\n <li>2012<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">10 990 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/7578076DF62\/alfa-romeo-159-19-jtd-m\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo 159 1.9 JTD-m\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo 159 1.9 JTD-m<\/span>\n <ul class=\"stats\">\n <li>239 342 km<\/li>\n <li>2006<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">8 500 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/69231862E41\/alfa-romeo-giulia-22-d-super\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Giulia 2.2 D Super\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Giulia 2.2 D...<\/span>\n <ul class=\"stats\">\n <li>176 922 km<\/li>\n <li>2017<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">23 990 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/54A39E9193E\/alfa-romeo-gt\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo GT \" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo GT <\/span>\n <ul class=\"stats\">\n <li>270 000 km<\/li>\n <li>2005<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">6 500 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/AE3F8CA0894\/alfa-romeo-stelvio-22d-q4-super-nacional\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Stelvio 2.2d Q4 Super Nacional\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Stelvio 2.2d...<\/span>\n <ul class=\"stats\">\n <li>64 000 km<\/li>\n <li>2017<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">35 850 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/915C414F465\/alfa-romeo-mito-sportiva-full-extras\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo MiTo SPORTIVA FULL EXTRAS\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo MiTo SPORTIVA...<\/span>\n <ul class=\"stats\">\n <li>119 000 km<\/li>\n <li>2011<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">9 990 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <div class=\"col-6 col-lg-3 col-xl-2\">\n <a href=\"\/\/127.0.0.1:8000\/classified\/70C02387CB1\/alfa-romeo-giulietta-16-multijet-panorama-automatico-nacional-nacional-nacionalco\">\n <div class=\"card\">\n <div class=\"card-img-top\">\n <img src=\"\/\/cdn.standocasiao.pt\/assets\/img\/default_listing.jpg\" alt=\"Alfa Romeo Giulietta 1.6 MULTIJET PANORAMA AUTOMATICO NACIONAL NACIONAL NACIONALCO\" \>\n <\/div>\n <div class=\"card-body\">\n <span class=\"name\">Alfa Romeo Giulietta 1.6...<\/span>\n <ul class=\"stats\">\n <li>176 053 km<\/li>\n <li>2017<\/li>\n <li>Gas\u00f3leo<\/li>\n <\/ul>\n <div class=\"price\">16 900 <span class=\"currency\">EUR<\/span><\/div>\n <\/div>\n <\/div>\n <\/a>\n <\/div>\n <\/div>\n\n <nav aria-label=\"Pagination\">\r\n <ul class=\"pagination justify-content-center\">\r\n \r\n <li class=\"page-item disabled\"><span class=\"page-link\">«<\/span><\/li>\r\n \r\n \r\n \r\n <li class=\"page-item active\"><span class=\"page-link\">1<\/span><\/li>\r\n <li class=\"page-item\"><a class=\"page-link\" href=\"\/\/127.0.0.1:8000\/search\/post?page=2\">2<\/a><\/li>\r\n <li class=\"page-item\"><a class=\"page-link\" href=\"\/\/127.0.0.1:8000\/search\/post?page=3\">3<\/a><\/li>\r\n \r\n \r\n \r\n \r\n <li class=\"page-item\"><a class=\"page-link\" href=\"\/\/127.0.0.1:8000\/search\/post?page=2\" rel=\"next\">»<\/a>\r\n <\/li>\r\n <\/ul>\r\n<\/nav>\r\n\n <\/div>\n"}
抱歉,如果不够详细,我已经工作了 18 个小时!
【问题讨论】:
-
\>(alt="Alfa Romeo Giulietta 1.6JTD" \>\n)在我的 IDE 中显示“非法转义序列”。我不能说如何解决它,但这就是问题所在。 -
你的json无效。在json lint 中试试看。
-
在位置 1663 附近,我看到了
alt=\"Alfa Romeo Giulietta 1.6JTD\" \>\n...注意\>可能应该是\/>,因为它是一个图像关闭标签...所以这是因为@ 里面的HTML 987654331@错了(里面有错字)。
标签: php jquery json ajax laravel