2013-10-11 33 views
6

Próbowałam uciec apostrof podczas przygotowywania kwerendy w JS w ten sposób:jak uciec pojedynczy cytat w URI filtrów odata?

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

i w ten sposób:

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

zarówno nie wydają się działać

Można zobaczyć przykład tutaj: http://services.odata.org/V3/Northwind/Northwind.svc/Orders? $ select = Fracht, CustomerID & $ filter = Nazwa statku + eq + 'B's% 20Beverages' & $ format = json

Czy ktoś wie, jak uniknąć pojedynczego cudzysłowu?

Dzięki

Odpowiedz

10

pojedynczy cytat muszą być podwojone, na przykład:

ShipName+eq+'B''sBeverages' 

zamiast

ShipName+eq+'B'sBeverages' 
+0

Dzięki! Pomógł mi, jak to odkryłeś? Nie mogłem go znaleźć nigdzie w dokumentacji odata. –

+0

Nie dokładnie pamiętam, gdzie, myślę, że niektóre googling i prób i błędów. Tutaj znalazłem listę znaków, które należy uciec przed wysłaniem na serwer http://msdn.microsoft.com/en-us/library/aa226544(SQL.80).aspx. Byłoby jednak bardzo żmudne, aby ręcznie utworzyć identyfikator URI dla każdego szczególnego przypadku, dlatego uruchomiłem bibliotekę do obsługi tutaj https://gist.github.com/mohamed-ali/6944876 i jestem otwarty na sugestie/przedłuż go. – MedAli

0

używany ten kod, aby zastąpić jeden cytat ... jej pracy ..

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