我使用的是凤凰1.3版在我的应用程序反应,试图让GET请求:凤凰+阵营不能让HTTPGET请求
httpGet('/api/v1/users')
.then(function (data) {
console.log("http get works!!!!");
})
.catch(function (error) {
console.log("nope doesn't work");
});
其中HTTPGET是:
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 };
这是我的路由器:
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
我不断收到我的HTTPGET请求失败的错误。所以,我的问题是我的路由器出了什么问题?发布,删除请求的作品。我相信它与路由器有关,但我找不到确切的问题。任何帮助感谢!
编辑:来自服务器的响应,我得到:
[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
而谷歌开发工具:
请求是否触及您的服务器?有什么记录在服务器日志中?浏览器控制台中是否有错误?您可以查看从Chrome开发工具中的网络标签发送的确切请求。 – Dogbert
嘿@Dogbert,我添加了回复。它返回的一切都是正确的,但响应是HTML类型,我想它应该是JSON在这里? – Ilya
啊,试着把第一个'scope do ... end'移到第二个之下。它看起来像你的通配符路线捕捉所有的东西。 – Dogbert