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ückIch ü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% Sie müssen $.param
anstelle von $.fn.param
verwenden (was eine Funktion wäre, um ein jQuery-Objekt aufzurufen, z. B. $(...).param()
).
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.
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.]
Tags und Links javascript jquery