我很困惑......这有什么问题? 无法在不改变标题的情况下发帖......我真的不知道出了什么问题
$(document).ready(function(){
$("#fmob").click(function(){
var mobname = $(this).attr("data-value");
console.log(mobname);
$.ajax({
type: "POST",
url: "/system/mobproc.php",
data: {mobname: 1},
dataType: "json",
success: function(data){
if(data.response === true){
$("#fresponse").html(data.result);
}else{
$("#fresponse").html(data.result);
}
},
error:function(jqXHR,textStatus,errorThrown ){
alert('Exception:'+errorThrown );
}
});
});
});
我在这里查看了Unexpected end of JSON input from an ajax call
但不知怎的不是我的预期......怎么了?感谢。
答案 0 :(得分:2)
尝试这种方法:
@multiplication_table
请注意上面带注释的行。
在这种方法中,我们设置一个数据对象并使用“mobname”变量的值指定属性,而不是定义内联属性。这允许我们使用变量的动态值作为属性的键。
答案 1 :(得分:-1)
我猜问题就在于:*
由于你不能将变量名称指定为像这样的对象属性......它应该在这样的方括号内data: {mobname: 1}
编辑:如果您不使用data: {[mobname]: 1}
支持的浏览器,您甚至可以
ES 2015
编辑1 如果您想将json数据作为字符串发送并在php端转换,您只需执行data: JSON.parse('{"'+mobname+'":1}')
这可能会导致您的ajax调用失败,并且可能不会像您期望的那样返回JSON(使用行data: '{"'+mobname+'":1}'
);
因此,删除dattype:JSON
也可以帮助您显示出错的地方
答案 2 :(得分:-1)
通过在两者键和值中使用双引号来区分JSON对象与标准JavaScript对象的区别 - 除非两者都是整数。
It is explained in the relevant W3Schools site.
因此,在您的AJAX请求中,您必须发送格式正确的JSON对象:
$.ajax({
type: "POST",
url: "/system/mobproc.php",
data: {"mobname": 1}, //here's the change
dataType: "json",
/* rest of the code */
您当然可以传递一个变量:
var JSON_obj = {"mobname": 1, "othermob": 2, /*rest of the JSON */ };
$.ajax({
type: "POST",
url: "/system/mobproc.php",
data: JSON_obj, //here's the change
dataType: "json",
/* rest of the code */
同样,使用格式正确的JSON对象(如果它在另一个文件中,则使用正确包含的JS脚本),这应该可行。