以下代码适用于IE以外的所有浏览器,并出现错误消息"SCRIPT65535: Argument not optional"
。
function _getChart(){
$('.series-data').remove();
var itm = window.item;
var tp = window.type;
var ord = window.order;
var xd = window.xdata;
var yd = window.ydata;
var dt = {superAwesomeTypeNotIEvar : tp,
superAwesomeItemNotIEvar : itm,
superAwesomeOrderNotIEvar : ord,
superAwesomeXdataNotIEvar : xd,
superAwesomeYdataNotIEvar : yd,
superAwesomeCharHeightNotIEvar : $('.charts-wrapper').height()};
$.ajax({
url: "ajax/data.php",
cache: false,
data: dt,
dataType: "json",
success: function(data) {
// Some fcs
正如您所看到的,我已经尝试将所有参数重命名为IE本身不可能使用的内容(例如removeFilter故事)。
这就是原来的功能
function _getChart(){
$('.series-data').remove();
$.getJSON('ajax/data.php', {
type : window.type,
item : window.item,
order: window.order,
xdata : window.kurtosis,
ydata : window.range,
chartHeight : $('.charts-wrapper').height()}, function(data) {
如果我将dt
数组设置为{}
,则一切正常,否则会显示上面的错误消息。
SCRIPT65535:参数不是optionalFile:jquery.js,Line:4,Column:13144
出现错误的jQuery非最小文件行
jQuery.param = function( a, traditional ) {
var prefix,
s = [],
add = function( key, value ) {
// If value is a function, invoke it and return its value
value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
};
为什么?
答案 0 :(得分:1)
对于它的价值,在我的情况下,它是'数据'的不正确形成的价值。尝试在调试器中检查dt并确保它是正确的数据类型。
答案 1 :(得分:1)
在ajax中添加以下代码
, cache: false
, processData: false // tell jQuery not to process the data
, contentType: false // tell jQuery not to set contentType
再试一次。
$.ajax({
url: "ajax/data.php",
cache: false,
data: dt,
dataType: "json",
cache: false,
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
success: function(data) {
答案 2 :(得分:-2)
不确定这是否会有所帮助,而且我知道您已经尝试过$ .getJSON,但也许这会让IE 11更快乐:
$.post('ajax/data.php', dt, function(data) {
// do something with data
},'json');
或者,您可以尝试使用$ .get代替。那是缺少"缓存:false"参数,但我不相信这是件坏事。使用它并不意味着所有浏览器都符合要求。