Javascript Ajax可以';t将数据作为json发送到php时不会出错
当我想以数据类型json发送数据时,它会响应以下错误: SyntaxError:JSON中位置0处出现意外标记< 当我尝试以数据类型文本的形式发送数据时,它成功地将数据发送到php,但我的php没有响应 ajax/js作为数据类型json:Javascript Ajax可以';t将数据作为json发送到php时不会出错,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,当我想以数据类型json发送数据时,它会响应以下错误: SyntaxError:JSON中位置0处出现意外标记'myValue']) $.ajax({ url: "test.php", method: "POST", dataType: "json", contentType: 'application/json', data:JSON.stringify(ob), success: func
let form = $("#form");
$("#form").on("submit", function(e) {
e.preventDefault();
$.ajax({
url: "test.php",
method: "POST",
dataType: "json",
data: {
test: 1
},
success: function (r) {
console.log("!!!");
},
error: function(jqXHR, textStatus, errorMessage) {
console.log(errorMessage);
}
});
});
ajax/js作为数据类型正常:
let form = $("#form");
$("#form").on("submit", function(e) {
e.preventDefault();
$.ajax({
url: "test.php",
method: "POST",
data: form.serialize(),
success: function (r) {
console.log("!!!");
},
error: function(jqXHR, textStatus, errorMessage) {
console.log(errorMessage);
}
});
});
php代码:
if(isset($_POST["test"])){
echo "<script>console.log('works');</script>";
}
if(isset($\u POST[“test”])){
echo“console.log('works');”;
}
试试这个
var ob = {
test: 1
};
Well
console.log('works')
不是有效的JSON。我删除了这个echo脚本。错误是相同的,但现在是“位置2”。那么您的脚本必须仍然用无效的JSON响应。首先,使用浏览器开发工具(网络面板)检查实际响应是什么。该死,为什么内容类型是:text/html。。。有解决办法吗?或者这不是问题所在?dataType
设置响应对象的数据类型,因此ajax调用需要从PHP返回一个json对象,但需要回显一些
字符串。尝试类似于echo json_encode(['myVar'=>'myValue'])代码>
$.ajax({
url: "test.php",
method: "POST",
dataType: "json",
contentType: 'application/json',
data:JSON.stringify(ob),
success: function (r) {
console.log("!!!");
},
error: function(jqXHR, textStatus, errorMessage) {
console.log(errorMessage);
}
});