"SyntaxError:JSON.parse:意外字符"将多个变量从AJAX传递到PHP时出错
"SyntaxError: JSON.parse: unexpected character" Error when passing multiple variables from AJAX to PHP
我使用AJAX将变量从表单传递到PHP页面,以处理数据库中的数据。
一旦用户点击一个按钮,就会触发以下JavaScript:
$(document).ready(function() {
$("#myForm").submit(function(event) {
/* validate the fields */
var firstDate= "11/10/2014"
var secondDate = "10/10/2014"
var myString = "some Text";
var myArray = ["name1", "name2", "name3", "123-123-33gf"];
processIT(firstDate, secondDate, muString, myArray);
});/* end of submit */
});
function processIT(firstDate, secondDate, muString, myArray) {
var response = "";
$(function () {
$.ajax({
url: 'api.php', // the script to call to get data
type: "POST",
data: {
firstDate: firstDate,
secondDate : secondDate ,
myString : myString ,
myArray : myArray ,
}, // you can insert url argumnets here to pass to api.php
dataType: 'json', // return data format
success: function(data) { //
alert(data);
},
error: function (jqXHR, textStatus, errorThrown){
console.log(textStatus, errorThrown);
},
});
});
return response;
}
api.php页面有以下
<?php
if ( isset($_POST["firstDate"]) && !empty($_POST["firstDate"])){
$response .= "<p>firstDate= " . $_POST["firstDate"] . "</p>";
}
else $response .= " 1 ";
if ( isset($_POST["secondDate"]) && !empty($_POST["secondDate"])){
$response .= "<p>secondDate = " . $_POST["secondDate"] . "</p>";
}
else $response .= " 2 ";
if ( isset($_POST["myString"]) && !empty($_POST["myString"])){
$response .= "<p>myString = " . $_POST["myString"] . "</p>";
}
else $response .= " 3 ";
if ( isset($_POST["myArray"]) && !empty($_POST["myArray"])){
$response .= "<p>myArray = " . $_POST["myArray"] . "</p>";
}
else $response .= " 4 ";
echo json_encode($response);
?>
但当我点击按钮时,我会得到以下错误:
SyntaxError:JSON.parse:第1行第1列出现意外字符JSON数据
但是,如果我将POST更改为GET,我可以看到传递的变量,但仍然会得到相同的错误。
你知道我做错了什么吗?
您的PHP文件没有输出有效的JSON响应,这就是JSON.parse
抛出错误的原因。PHP代码中有许多错误,这些错误被包含在输出中,从而产生无效的JSON响应。
console.log("firstDate" + $_POST["firstDate"]);
这不是有效的PHP代码。PHP没有console.log()
。它具有echo
。附言:在PHP中使用.
连接字符串,而不是+.
$_POST["secondDate "]
$_POST["myString "]
$_POST["myArray "]
这些钥匙。最后没有空位了。它们应该是:
$_POST["secondDate"]
$_POST["myString"]
$_POST["myArray"]
最后,$_POST["myArray"]
是一个数组。不能将其连接到字符串。试试这个:
$response .= "<p>myArray = ".implode(', ', $_POST["myArray"])."</p>";
相关文章:
- "日期“;AJAX请求返回的类型值未定义
- "资源不足错误“;当从Chrome控制台重复发出ajax请求时
- "未捕获的SyntaxError:意外的令牌ILLEGAL“;当我通过AJAX发送html时
- 如何在“;beforeSend:function()"使用ajax和jquery
- $.Ajax投掷“;无效的参数"在IE9上
- 得到"parserror”;在jquery ajax中
- "显示更多“<h: 命令按钮>使用ajax
- "堆叠外空间”;同时通过AJAX调用填充jsTree
- "r 〃;在jquery-ajax-html的警报中
- 如何在ajax中返回文本文件值Asynchronous"Synchronous正在被弃用”;
- 得到"来自(127.0.0.1'33187)“;当使用$.ajax执行get请求时
- "SyntaxError:JSON.parse:意外字符"将多个变量从AJAX传递到PHP时出错
- 如何获得"这个值“;在jQuery.ajax上
- 得到"否'访问控制允许来源'标头存在于请求的资源上"对于我的JS AJAX而不是“;
- 使用ajax打印“;你好,世界"当你点击一个按钮时
- "对象没有't支持这一行动”;请致电Ajax.autocompleter
- 如何"递归AJAX回调”;在JavaScript工作中
- "风格"显示AJAX弹出窗口(vb.net)时出错
- javascript+jquery-ajax:有条件的"数据“;要素
- "重新打开最后一个关闭的选项卡“;导致显示最后一个ajax请求内容