überschreibt die Funktion jquery.param

8

Ich habe ein Problem mit der Funktion jQuery.param. jQuery verwendet + anstelle von% 20 für URL-codierte Leerzeichen

%Vor%

gibt "test = tester + 2"

zurück

Ich überlegte, diese Kernfunktion zu übergehen:

%Vor%

Dies schlägt jedoch fehl .. Das $ .param wird nicht überschrieben.

Irgendeine Idee, was kann falsch sein?

Danke!

Bearbeiten: meine Lösung (weil ich ein neuer Benutzer bin, kann ich meine eigene Frage in acht Stunden nicht beantworten (Warum ist das so?))

Mit der Lösung von ThiefMaster hatte ich immer noch das Problem, dass buildParams nicht definiert ist. Ich löste das, indem ich die alte Funktion aufruft und dann das + zurück zu% 20

ersetzte %Vor%     
Chielus 27.04.2011, 13:27
quelle

3 Antworten

3

Sie müssen $.param anstelle von $.fn.param verwenden (was eine Funktion wäre, um ein jQuery-Objekt aufzurufen, z. B. $(...).param() ).

    
ThiefMaster 27.04.2011, 13:29
quelle
2

Alte Post, die ich kenne, aber um des aufgezeichneten Wissens willen. Um das "+", das bei der Verwendung von $ .param () übrig geblieben ist, zu ersetzen, können Sie Folgendes tun:

(Mit dem von Ihnen angegebenen Code)

%Vor%

Das wird dazu führen: Test = Tester 2

Hoffe das hilft jemandem.

    
Houdini Sutherland 13.10.2014 15:06
quelle
0

Der Fix "re-replace" kann auch mit "beforeSend" im ajax settings-Objekt implementiert werden:

%Vor%

Dieser Ansatz eignet sich für Fälle, in denen Sie das ursprüngliche Verhalten von $ .param () nicht ändern möchten (z. B. wenn Sie "+" in URLs, aber "% 20" für POST-Daten verwenden möchten).

[Bearbeitet, weil ich mich daran erinnert habe, dass string.replace () nur einmal übereinstimmt, es sei denn, es handelt sich um ein Regex-Objekt mit dem g-Flag.]

    
Semicolon 14.10.2012 19:06
quelle

Tags und Links