2010-11-25 9 views
13

Ich habe einige jQuery-Code, der einen wirklich seltsamen Fehler wirft. Google Chrome ruft den Fehler Uncaught TypeError: Illegal invocation und sagt, dass es in c.extend.param.e von jquery-1.4.4.min.js Linie 144 geworfen wird, aber Backtraces es zu meinem $ Schnipsel Aufruf, die wie folgt aussieht:

$.ajax({ 
    url: target, 
    type: method, 
    dataType: 'json', 
    data: sendData, 
    success: function(result) { 
     if (result.redirect) { 
      window.location = result.redirect; 
     } 
     else { 
      for (var i in result) { 
       if ($(i).size()) { 
        $(i).html(result.i); 
       } 
      } 
     } 
    } 
}); 

eine andere Frage auf SO, die ein bisschen wie folgt aussieht, verwendet es $, ohne es in einer jQuery-Funktion ordnungsgemäß einzuschließen, aber ich bin ziemlich sicher, dass das diesmal nicht mein Fehler ist, weil ich vorsichtig war.

Antwort

20

Probleme sind hier:

event.preventDefault(); 
var data = $.extend({ 
    referrer: window.location, <-- window.location is an object, 
            should be window.location.href 
    href: $(this).attr('href') 
}, options.linkData); 
loadPage(options.linkUrl, options.linkMethod, data); 

Dies zu ändern, macht es Arbeit, Grund, es bricht?

<jQUery1.4.4 at line 6079> 
s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value) 

encodeURIComponent nicht wie die window.location Objekt, wie es strings dauert nur.

See: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent

+0

Danke, das ist es fixiert. –

+4

Kein Problem :) Nahm nur 5 Minuten (gut, wenn Sie wissen, was Sie suchen müssen) –

+0

Wo ist event.preventDefault(); var data = $ .extend ({ Referrer: window.location, <- window.location ein Objekt ist, sollte window.location.href href sein: $ (this) .attr ('href') } , options.linkData); loadPage (options.linkUrl, options.linkMethod, data); kommen aus? Der Fragesteller hat diesen Code nicht in seine Frage eingefügt. –

2

versuchen mit jQuery.param mit traditionellen Parameter in wahre

documentation of param
modified

+0

Danke, das war ein anderes Problem. Es war nicht derjenige, der den Fehler verursacht hat, aber du hast mir eine Menge Kopfschütteln erspart. –

Verwandte Themen