У меня есть базовый вызов GET для моего бэкэнда через jQuery, например: $.get("http://whatever.herokuapp.com/products", function(html) {}
, который обрабатывается в обработчике маршрута Node.js
путем вызова кода, который извлекает запись продукта из базы данных MongoDB
. Затем эти данные продукта создаются с некоторым HTML-кодом и отправляются обратно в виде строки HTML, после чего он вводится на страницу через $("#products").html(html)
.
Эта строка HTML содержит URL-адрес (ссылка на продукт на сайте электронной коммерции). Но вместо URL-адреса, который отображается как обычный http://www.somemerchant.com/productid=12345&whatever=2
, он искажается в http://function URL() {[native code]}
.
Кто-нибудь знает, что может случиться? Я проверил возврат на каждом шагу - из необработанных данных, извлеченных из MongoDB
, в строку HTML, созданную и отправленную обратно обработчику Node.js
, к тому, что было возвращено Node.js
через response.send()
, к каким результатам из $.get()
, и все в порядке - URL-адрес, как и должно быть. Если я изменяю вызов $("#products").html(html)
на $("#products").text(html)
, опять же, все в порядке - HTML отображается как текст, но URL-адрес не поврежден. На этом этапе - $("#products").html(html)
- что URL-адрес искалечен. И я понятия не имею, почему.
Спасибо за любые идеи.
Возможно, вам не хватает ()
где-то в вашем коде. Это заставляет узел (или браузер) печатать код функции. Родные функции не полностью распечатаны, вместо этого он печатает только строку [native code]
.
Мы можем помочь вам, если вы предоставите код, над которым работаете.
Ниже приведен пример того, что происходит (это было выполнено с консоли Chrome):
toString()
в эквивалентную строку, которая будетfunction URL() {[native code]}
URL
вместо ее передачи?