SyntaxError:来自ajax发布调用的JSON输入意外结束
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SyntaxError:来自ajax发布调用的JSON输入意外结束相关的知识,希望对你有一定的参考价值。
我从ajax post调用中收到“ SyntaxError:JSON输入意外结束”,以将数据发送到serverlet进行处理。一切似乎实际上都在工作-ajax正在将数据发送到servlet,而servlet正在正确接收数据。我看不到解析器为何引发错误。
我在StackOverFlow上研究并尝试了许多其他解决方案,但均未成功。
任何帮助或指针表示赞赏!
干杯...史蒂夫
我的浏览器代码是:
function createDataset()
var jsonObj = new Object();
jsonObj.display_drivername = document.getElementById('driver_namedb').value;
jsonObj.drive_seq1 = document.getElementById('drive_seq1').value;
return jsonObj;
function submit_claim()
//Main code call
var JsonDataset = createDataset();
console.log(JsonDataset);
request = $.ajax(
url: '../wp-content/themes/u-design-child/deleteme.php',
type: 'POST',
contentType:'application/json; charset=utf-8',
dataType: 'JSON',
data: JsonDataset
);
和deleteme.php中的服务器端测试代码:
//elog writes to error.log file
if(!empty($_POST['display_drivername'])) elog ('Drivername found'.$_POST['display_drivername']);;
if(empty($_POST['display_drivername'])) elog ('driver name empty');;
if(!empty($_POST['drive_seq1'])) elog ('DSN found'.$_POST['drive_seq1']);;
if(empty($_POST['drive_seq1'])) elog ('DSN empty');;
我得到的结果是:
从Submit_Claim(JsonDataset)(在Chrome控制台中扩展)的控制台日志输出:
display_drivername: "Steve Parry [SPAR]", drive_seq1: "2438"
display_drivername: "Steve Parry [SPAR]"
drive_seq1: "2438"
__proto__: Object
来自DeleteMe.php网络标题的表格数据:
display_drivername: Steve Parry [SPAR]
drive_seq1: 2438
错误日志(来自Deleteme.php):
[06-Jan-2020 18:49:44 UTC] string(34) "Drivername foundSteve Parry [SPAR]"
[06-Jan-2020 18:49:44 UTC] string(13) "DSN found2438"
编辑1:看到一个已经消失的人的评论,指出contenttype应该是contentType。谢谢你,无论如何,这并没有改变问题。
通过完全删除contentType和dataType行,最终使它可以正常工作。
以上是关于SyntaxError:来自ajax发布调用的JSON输入意外结束的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 JSONP 的 AJAX 未捕获的 SyntaxError 和 CORS 错误
Mailchimp mc-validate.js 拦截网站的 ajax 请求
Rails/Jquery Ajax - SyntaxError: Unexpected identifier, but JSON is Valid