Ajax 响应码200,但回调error

最近有一个朋友问了我些问题,有个问题的原因出在ajax的使用上,具体的状况是,ajax请求值后台接口可以收到,响应200后,success未收到响应值,一般来说响应出200未报错,但是未回调success,那就大多就进入到error了,然后在 error中 alert(),确定确实回调在了 error函数。然后使用浏览器network检验到返回值为 html串,但是 实际上 dataType:json,这就是确定了问题。

想着总结下,就百度了不少写的很好的博客。算是拾人牙慧了。有以下几种情况:

1、dataType与响应类型不一致

这是最常见的问题,比如上面的问题,返回的为 html格式,但是定义的是 json格式,就会回调 error()。一般使用 dataType:json 较多,一定要注意返回值为标准的json格式,有时候多个换行符,或者中文逗号也会回调error()。

 

2、async请求同步异步问题

这个我也遇到过,ajax默认是异步的(async:ture)。若是做些判断类的需求,明确是同步顺序,一定加上 async:false。

 

3、ajax请求跨域  

这个没有遇到过,博客搜到的会造成上述问题。

 

4、 data不能不写

   data为空也一定要传"{}";不然返回的是xml格式的。并提示parsererror. data:"{}"

   parsererror的异常和Header 类型也有关系。及编码header('Content-type: text/html; charset=utf8');

 

5. 传递的参数

    必须是ajax支持的编码格式

 

6. URL路径问题

    路径不能有中文

 

3、4、5、6都是网上搜到了,没遇到过也未验证过。

 

jquery ajax dataType类型

对于 dataType看了 jquery的文档有下几种形式

 

jquery ajax 回调函数

 

看了 jquery关于ajax部分的文档,发现自己以前只是用了些皮毛,略知一点点,以后还是多看文档,多使用啊。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 JavaScript简介 1 1.1 JavaScript是什么 1 1.2 JavaScript不是什么 2 1.3 JavaScript的用处 3 1.4 JavaScript及其在Web页面中的位置 3 1.5 Ajax是什么 5 1.6 JavaScript是什么样子的 6 1.7 JavaScript及其在Web开发中承担的角色 7 1.8 JavaScript和事件 9 1.9 标准化JavaScript和W3C 11 1.9.1 JavaScript对象 12 1.9.2 文档对象模型 12 1.10 关于浏览器 13 1.10.1 JavaScript的版本 14 1.10.2 你的浏览器遵循标准吗 16 1.10.3 浏览器是否已启用JavaScript 16 1.11 JavaScript代放在哪儿 17 1.12 验证标签 20 1.12.1 W3C验证工具 21 1.12.2 Validome验证工具 21 1.13 应知应会 22 练习 23 第2章 脚本的安装 24 2.1 HTML文档与JavaScript 24 2.2 语法细节 27 2.2.1 区分大小写问题 27 2.2.2 自由形式及保留字 27 2.2.3 语句及分号 28 2.2.4 注释 28 ... 2.2.5 〈script〉标签    2.3 生成HTML 并输出显示    2.3.1 字符串及字符串串联    2.3.2 write()及writeln()方法    2.4 关于调试    2.5 调试工具    2.5.1 Firefox    2.5.2 在Internet Explorer 8中调试    2.5.3 [removed]URL 协议    2.6 JavaScript与旧浏览器或受限的浏览器    2.7 应知应会    练习    第3章 数据类型、字面量和变量    3.1 数据类型    3.1.1 基本数据类型    3.1.2 复合数据类型    3.2 变量    3.2.1 有效变量名    3.2.2 声明和初始化变量    3.2.3 动态或宽松类型语言    3.2.4 变量作用域    3.2.5 变量的拼接    3.3 常量    3.4 要注意的bug    3.5 应知应会    练习    第4章 对话框    4.1 与用户交互    4.1.1 alert()方法    4.1.2 prompt()方法    4.1.3 confirm()方法    4.2 应知应会    练习    第5章 运算符    5.1 JavaScript运算符和表达式    5.1.1 赋值运算符    5.1.2 优先级和结合性    5.2 运算符类型    5.2.1 算术运算符    5.2.2 快捷赋值运算符    5.2.3 递增运算符和递减运算符    5.2.4 拼接运算符    5.2.5 比较运算符    5.2.6 逻辑运算符    5.2.7 条件运算符    5.2.8 位运算符    5.3 数字、字符串还是布尔值?数据类型转换    5.3.1 parseInt()函数    5.3.2 parseFloat()函数    5.3.3 eval()函数    5.4 特殊运算符    5.5 应知应会    练习    第6章 条件选择    6.1 控制结构、块及复合语句    6.2 条件    6.2.1 if/else    6.2.2 if/else if    6.2.3 switch    6.3 循环    6.3.1 while循环    6.3.2 do/while循环    6.3.3 for循环    6.3.4 for/in循环    6.3.5 使用break和continue控制循环    6.3.6 嵌套循环及标签    6.4 应知应会    练习    第7章 函数    7.1 什么是函数    7.1.1 函数声明和调用    7.1.2 返回值    7.1.3 匿名函数变量    7.1.4 闭包    7.1.5 递归    7.1.6 函数是对象    7.2 调试技巧    7.2.1 函数语法    7.2.2 使用try/catch和throw捕捉异常    7.3 应知应会    练习    第8章 对象    8.1 什么是对象    8.1.1 对象及点语法    8.1.2 使用构造函数创建对象    8.1.3 对象的属性    8.1.4 对象的方法    8.2 类和用户自定义函数    8.2.1 什么是类    8.2.2 什么是this   
什么是SWFUpload?   SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 [编辑本段]SWFUpload的主要特点   * 可以同时上传多个文件;   * 类似AJAX的无刷新上传;   * 可以显示上传度;   * 良好的浏览器兼容性;   * 兼容其他JavaScript库 (例如:jQuery, Prototype等);   * 支持Flash 8和Flash 9;   SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的在文件上传过程中更新页面内容来营造各种动态效果。   在使用SWFUpload之前,请确认你具备一定的JavaScript和DOM知识。在实际开发中,大部分的错误都是由于错误的设置和低劣的Event Handlers处理程序所造成的。 [编辑本段]文档中文翻译   http://www.v-sky.com/doc/swfupload/v2.1.0/Documentation.html [编辑本段]效果演示   * Classic Form Demo http://demo.swfupload.org/formsdemo ;   * Features Demo http://demo.swfupload.org/featuresdemo ;   * Application Demo http://demo.swfupload.org/applicationdemo ;   * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件   在发行包(SWFUpload v2)中含有2个版本的Flash控件(swfupload_f8.swf 与wfupload_f9.swf),其中第一个版本拥有最佳的兼容性,但是为此损失了部分功能;而第二个版本提供了一些附加的功能但是损失了兼容性。 [编辑本段]SWFUpload的初始化与配置   首先,在页面中引用SWFUpload.js ,如      然后,初始化SWFUpload ,如   var swfu;   window.onload = function () {   swfu = new SWFUpload({   upload_url : "http://www.swfupload.org/upload.php",   flash_url : "http://www.swfupload.org/swfupload_f9.swf", file_size_limit : "20480"   });   };   以下是一个标准的SWFUpload初始化设置所需的参数,你可以根据需要自己行删减:   {   upload_url : "http://www.swfupload.org/upload.php", 处理上传请求的服务器端脚本URL   file_post_name : "Filedata", 是POST过去的$_FILES的数组名   post_params : {   "post_param_name_1" : "post_param_value_1",   "post_param_name_2" : "post_param_value_2",   "post_param_name_n" : "post_param_value_n"   },   file_types : "*.jpg;*.gif", 允许上传的文件类型   file_types_description: "Web Image Files", 文件类型描述   file_size_limit : "1024", 上传文件体积上限,单位MB   file_upload_limit : 10, 限定用户一次性最多上传多少个文件,在上传过程中,该数字会累加,如果设置为“0”,则表示没有限制   file_queue_limit : 2, 上传队列数量限制,该项通常不需设置,会根据file_upload_limit自动赋值   fl

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值