Ich versuche, alte Schienen-Anwendung durch den neuen Phoenix zu ersetzen. Ich sende die Ajax-Anfrage und versuche zu erkennen, wie JSON über jQuery automatisch ist. Das Problem ist, dass Schienen kehrt diesen Inhalt:Warum gibt Phoenix Controller einen JSON zurück, der nicht als JSON erkannt werden kann
{"user_id":1,"user_avatar_url":"/avatar.png"}
während mein Phönix App gibt diese:
"{\"id\":1,\"avatar_url\":\"/avatar.png\"}"
so brauche ich JSON.parse
zu erkennen, diesen Inhalt als JSON-Objekt ausgeführt werden. Was kann ich tun, um es automatisch zu analysieren?
Mein Phoenix-Code:
# the controller part responsible for rendering
conn
|> put_session(:user_id, user.id)
|> json(Poison.encode!(user))
# poison serializer placed in model
defimpl Poison.Encoder, for: Harvest.User do
def encode(user, _options) do
user
|> Map.put(:avatar_url, "/avatar.png")
|> Map.take([:id, :avatar_url])
|> Poison.encode!([])
end
end
Dank! Das hat mir sehr geholfen – asiniy