Kiedy próbuję zwrócić symbol £ z połączenia JSON, pojawia się błąd w chrome: Uncaught SyntaxError: Nieoczekiwany token ILLEGAL
var currency = "";
var price = "";
$.ajax({
type: "GET",
url: "../JSONDeliveryPrice/",
dataType: "json",
success: function (data) {
price = eval(data.price);
currency = eval(data.currency);
},
async: false
});
console.log(price);
console.log(currency);
waluta powinna być równa "£", ale zamiast tego dostaję ten błąd. Czy muszę jakoś zakodować / odkodować wartość? Ponadto, ceny wyjściowe poprawnie, jeśli wrócę tylko cena.
EDYTOWAĆ:
public virtual ActionResult JSONDeliveryPrice()
{
string currency = "£";
decimal price = 123;
return Json(new { price = price, currency = currency }, JsonRequestBehavior.AllowGet);
}
Odpowiedzi:
2 dla odpowiedzi № 1Nie potrzebujesz tego eval()
jak już określiłeś typ danych jako JSON (jQuery zrobi dla Ciebie JSONyfikujący. Możesz po prostu:
...
success: function (data) {
price = data.price;
currency = data.currency;
},
...