2013-10-11 15 views
6

ho cercato di sfuggire alla sola offerta quando si prepara la query in questo modo JS:come sfuggire alla citazione singola nel filtro odata uri?

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

e in questo modo:

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

sia non sembra lavorare

Si può vedere un esempio qui: http://services.odata.org/V3/Northwind/Northwind.svc/Orders? $ selezionare = Trasporto, ID cliente & $ filtro = NomeNota + eq + 'B's% 20Bisc' & $ format = json

Qualcuno sa come sfuggire alla singola citazione?

Grazie

risposta

10

l'apostrofo necessità di raddoppiare, per esempio:

ShipName+eq+'B''sBeverages' 

invece di

ShipName+eq+'B'sBeverages' 
+0

Grazie! Mi hai aiutato, come l'hai scoperto? Non sono riuscito a trovarlo da nessuna parte nella documentazione di Odata. –

+0

Non ricordo esattamente dove, suppongo alcuni googling e tentativi ed errori. Qui ho trovato una lista di caratteri che devono essere sfuggiti prima di inviare al server http://msdn.microsoft.com/en-us/library/aa226544(SQL.80).aspx. Tuttavia, sarebbe molto noioso creare manualmente un URI per ogni caso particolare, quindi ho avviato una libreria per gestirla qui https://gist.github.com/mohamed-ali/6944876 e sono aperto a suggerimenti su come imporre/estenderlo. – MedAli

0

usato questo codice per sostituire apice singolo ... Il suo funzionamento ..

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