ajax传值总是返回error,后台试过了数据处理正常。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax传值总是返回error,后台试过了数据处理正常。相关的知识,希望对你有一定的参考价值。
<script>
$(function()
var $result = $('#result');
$('#submit').click(function()
var w = $('#w').val();
var m = $('#m').val();
var wi = $('#wi').val();
var le = $('#le').val();
if(!wire)
$result.html("<font color=red>请输入规格</font>");
return false;
$result.html("<font color=green>计算中...</font>");
$.ajax(
url: 'server.php',
data: wd:w,m:m,w:wi,l:le,
dataType: 'json',
type: 'POST',
success: function(json)
alert(json.status);
var html = "<div style='border:1px #CCC solid; padding:3px;'>"
+ json.data
+ "</div>";
$result.html(html);
return false;
,
error: function(json)
alert("获取信息失败"); //一直都弹出这里的提示
alert(json);
);
);
);
</script>
<ul>
<li>输入详细规格</li>
<li>
1.<input type="text" name="w" id="w" value="">
2.<input type="text" name="m" id="m" value="">
3.<input type="text" name="wi" id="wi" value="">
4.<input type="text" name="le" id="le" value="">
<button id="submit" type="submit">算一下</button>
</li>
<li id="result">
</li>
</ul>
如果你后台返回的是success:true,id:1 这种不规则的字符串,不是严格的json格式,改成"success":true,"id":"1" 就可以正常执行success回调了。 参考技术B 1、if(!wire) //这个变量好像你上下文没有定义吧。
2、dataType: 'json',改为dataType: 'html',看一下后台输出的json字符合不合法。
ajax请求成功返回200,但还是进入error事件
ajax请求成功返回200,但还是进入error事件。
出错原因:
前台dataType:"json",而后台返回的数据不符合json规范。
解决方案有两种:
1.前台:让ajax数据返回类型为text而不是json;即dataType: "text";
2.后台:修改后台返回值
以上是关于ajax传值总是返回error,后台试过了数据处理正常。的主要内容,如果未能解决你的问题,请参考以下文章
ajax传值和返回值问题: 能够从前台传值给后台,但是后台的值怎么传给前台呢? 代码见补充(求详细解答