最近遇到一个问题,困扰了好久,今天终于把它解决了,把它记录下来:
问题:
? 我做前端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",有影响吗?
这个问题还未研究,接下来研究