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>

参考技术A jquery1.4版本以后对json格式要求非常严格了,要满足json.org网站定义的格式才能执行success回调,否则都会出错,无法解析返回的json数据。

如果你后台返回的是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传值和返回值问题: 能够从前台传值给后台,但是后台的值怎么传给前台呢? 代码见补充(求详细解答

Ajax传值后台状态值为200却进入ERROR函数中

Spring MVC返回Map格式JSON数据

SpringMVC ajax传值问题

IE8 环境的 JQuery 中的 $.ajax 拒绝访问---解决方案

前端ajax异步传值以及后端接收参数的几种方式