Jquer Ajax xmlhttp请求成功了,为什么一直在error函数里面

今天遇到了一个极其奇怪的问题,用各种工具检查都能看到服务器端返回了200,数据也是正常的,但是$.ajax 始终进不到success,郁闷啊,在网上找,

常见问题场景: 1.跨域;

2. $.ajax 没设置 dataType,及服务器端没设置respon.ContentType

3. Json结构错误;

第一第二很快就排除了,到了第三重新度了Json的定义 ,http://www.json.org/json-zh.html

重新复习了下Json的定义, 键值对: 键为string

值为

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

原来定义的类型是

{isSuccess:true,message:‘good‘}

按照键的定义应该修改为

{‘isSuccess‘:true,‘message‘:‘good‘}

继续执行还不行,按照值的定义修改:

{‘isSuccess‘:true,‘message‘:"good"}

彻底郁闷了,这还不行
后面放下这里仔细看了对Json键值的规范,值要定义为带双引号的字符串,为什么是双引号,那么键呢,是不是需要?

换成

{"isSuccess":true,"message":"good"}

直接通了。

Json的格式跟Javascript里面对象的区别就在这里,Json要求键,值必须是双引号!!

时间: 2024-08-11 05:46:01

Jquer Ajax xmlhttp请求成功了,为什么一直在error函数里面的相关文章

jQuery AJAX中的$.ajax()方法请求成功却始终进入error问题的解决方案及原因记录

在这个示例中,当点击"click me"按钮后,jQuery会向tomcat请求a.txt文件,成功过后会弹出"success"警告框,失败后会弹出"fail"警告框. 运行结果如下图 当点击按钮时,在开发者工具下可以看到已经拿到了a.txt文件,但是却弹出了"fail"警告框. 网上搜了很多博客,有的说是跨域访问,要把请求类型改为jsonp,高频词汇但是我是在本地服务器上运行的,都是在本地ip下,不是跨域问题.不过他说的修改

【jquery】ajax 请求成功后新开窗口被拦截解决方法

问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所

ajax请求成功后新窗口window.open()被拦截的解决方法

ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截. 解决方法: 1.异步改为同步,即:async:false 2.将新开窗口指向为一个对象,然后修改对象的 ur

Ajax异步请求的各种使用情况

首先介绍下Ajax的各项参数: url : 发送请求的地址  (默认: 当前页地址) data :发送到服务器的数据 (必须为 Key/Value 格式) type : 请求方式 ("POST" 或 "GET"), 默认为 "GET". dataType : 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就会生成一个JavaSc

jquery ajax请求成功,返回了数据,但是不进success的问题 【转】

这几天一直被 ajax请求成功,返回了数据,但是不进success的问题困扰着,怎么弄就是解决不了,总以为 是:$(document).ready(function(){});没起作用,一直找页面加载的方法来试,整了好几天没整出来....今天比较幸运, 在网上找到了一篇关于这方面问题的文章,按上面的方法一试,果然ok了,哈哈哈,真是太高兴了....终于解决这个问题了. 这个问题的原因(来自http://www.myexception.cn/ajax/413061.html的拷贝内容): ----

ajax请求成功后打开新窗口地址

转自:http://www.cnblogs.com/linjiqin/p/3148205.html jQuery.ajax({       "type":"post",       "url":"http://www.baidu.com",       "success":function(rel){            if(rel.isSuccess){                 window.

ajax请求成功返回200,但还是进入error事件

ajax请求成功返回200,但还是进入error事件. 出错原因: 前台dataType:"json",而后台返回的数据不符合json规范. 解决方案有两种: 1.前台:让ajax数据返回类型为text而不是json:即dataType: "text"; 2.后台:修改后台返回值 原文地址:https://www.cnblogs.com/Fourteen-Y/p/11307392.html

ajax请求成功后返回值如何赋值给js变量

var msg = "" $.ajax({             type:"POST",             url :"ajax/checkArray.php",             data:"nns_config_item_value="+nns_config_item_value,             success:function(data){                          if

ajax 异步请求四个步骤

ajax异步请求详解 ajxa定义:异步的JavaScript和xml 1.XMLHttpRequst的出现才有了异步处理 2.创建XmlHttpRequest对象 var request=new XMLHttpRequest(); 注意:如果要兼容IE6以下浏览器则需要编写如下代码 var request; if(window.XMLRequest){ request=new XMLRequestHttpRequest();  //IE7.IE8.360等 }else{ request=new