2013-10-11 5 views
6

Ich versuchte, das Apostroph bei der Vorbereitung der Abfrage in JS auf diese Weise zu entkommen:wie zu entkommen single quote in odata filter uri?

_value.replace(/'/g,'%27') 

und auf diese Weise:

scheinen
_value.replace(/\'/g,'\\\''); 

beide nicht

Sie sehen können, arbeiten ein Beispiel hier: http://services.odata.org/V3/Northwind/Northwind.svc/Orders? $ select = Fracht, Kundennummer & $ filter = ShipName + eq + 'B's% 20Beverage' & $ format = json

Weiß jemand, wie man dem einfachen Zitat entkommt?

Dank

Antwort

10

der Apostroph Bedarf verdoppelt werden, zum Beispiel:

ShipName+eq+'B''sBeverages' 

statt

ShipName+eq+'B'sBeverages' 
+0

Vielen Dank! Hat mir geholfen, wie hast du das herausgefunden? Ich konnte es nirgends in der odata Dokumentation finden. –

+0

Ich erinnere mich nicht genau, wo, ich denke, etwas googeln und Trial & Error. Hier fand ich eine Liste von Zeichen, die maskiert werden müssen, bevor sie an den Server http://msdn.microsoft.com/en-us/library/aa226544(SQL.80).aspx gesendet werden. Es wäre jedoch sehr mühsam, einen URI manuell für jeden speziellen Fall zu erstellen, deshalb habe ich eine Bibliothek gestartet, die das hier behandelt https://gist.github.com/mohamed-ali/6944876 und ich bin offen für Vorschläge, wie ich mich verbessern kann /erweitere es. – MedAli

0

diesen Code Gebraucht Apostroph ... Seine Arbeiten zu ersetzen ..

_value.replace(/'/g, '%27%27')