日期:2014-05-16  浏览次数:21220 次

$.ajax IE下报错“缺少: ':' ”

最近遇到一个问题,困扰了好久,今天终于把它解决了,把它记录下来:
问题:
? 我做前端js,与后台的交互都是通过jQuery ajax调用后台接口,获取数据。测试所以浏览器都没有问题,就IE一直弹出一个错误,

"

缺少 “:”

index.html ? 第2行 第8个字符

"

在debugger下定位,错误在<html>上

结果一步一步排查,错误出现在我调用的页面初始化函数的ajax调用里

ajax函数:

$.ajax({

type:"POST",

url:this.addUrlRnd(url),

data:params,

processData:false,

contentType:"application/xml",

complete:callback

});

在所以浏览器里都没有问题,硬是找了好久问题出在那里,通过$.post测试,后来发现没写dataType,之前看书上说,dataType 如果不指定的话jQuery将自动根据HTTP包MIME信息返回responseText或者responseXML,并作为回调函数的参数,但是怎么在IE下没写就报错了呢。

更改:

$.ajax({

type:"POST",

url:this.addUrlRnd(url),

data:params,

processData:false,

dataType: "text",

contentType:"application/xml",

complete:callback

});

问题,解决。

但是又留下一个问题,这里写dataType: "text",有影响吗?

这个问题还未研究,接下来研究