machen kann ich bin mit Phoenix-Version 1.3 mit meiner Anwendung Reagieren in und versuchen Anfrage zu machen Get:Phoenix + Reagieren nicht HttpGet Anfrage
httpGet('/api/v1/users')
.then(function (data) {
console.log("http get works!!!!");
})
.catch(function (error) {
console.log("nope doesn't work");
});
wo HttpGet ist:
export function httpGet(url) {
return fetch(url, {
headers: buildHeaders(),
})
.then(parseJSON);
}
parseJSON :
export function parseJSON(response) {
return response.json();
}
buildHeaders():
const defaultHeaders = {
Accept: 'application/json',
'Content-Type': 'application/json',
};
function buildHeaders() {
const authToken = localStorage.getItem('phoenixAuthToken');
return { ...defaultHeaders, Authorization: authToken };
Und das ist mein Router:
defmodule App.Web.Router do
use App.Web, :router
pipeline :browser do
plug :accepts, ["html", "json"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
end
pipeline :api do
plug :accepts, ["json"]
plug Guardian.Plug.VerifyHeader
plug Guardian.Plug.LoadResource
end
scope "/", App.Web do
pipe_through :browser # Use the default browser stack
get "/*path", PageController, :index
end
scope "/api", App.Web do
pipe_through :api
scope "/v1" do
post "/users", UserController, :create
get "/users", UserController, :index
end
end
Ich erhalte Fehler, die meine httpget Anforderung fehlschlägt. Also, meine Frage ist was ist falsch mit meinem Router? Post, Delete-Anfrage funktioniert. Ich glaube, es hat etwas mit dem Router zu tun, aber ich kann das genaue Problem nicht finden. Jede Hilfe wird geschätzt!
Edit: Antwort vom Server erhalte ich:
[info] GET /api/v1/current_user
[debug] Processing with App.Web.PageController.index/2
Parameters: %{"path" => ["api", "v1", "users"]}
Pipelines: [:browser]
[info] Sent 200 in 260µs
Und Google Dev Tools:
Request Method:GET
Status Code:200 OK
Response Headers: Content-Type:text/html; charset=utf-8
Ist die Anfrage auf Ihren Server? Ist in den Serverprotokollen alles protokolliert? Gibt es einen Fehler in der Browserkonsole? Sie können die genaue Anfrage sehen, die über die Registerkarte "Netzwerk" in Chrome-Entwicklungstools gesendet wurde. – Dogbert
Hey @Dogbert, ich habe die Antworten hinzugefügt. Es gibt zurück, dass alles korrekt ist, aber die Antwort ist HTML-Typ, ich denke, es sollte JSON hier sein? – Ilya
Ah, versuche das erste 'scope do ... end' unter dem zweiten zu bewegen. Es sieht so aus, als ob deine Wildcard-Route alles fängt. – Dogbert