小编Jag*_*ati的帖子

使用axios POST请求传递标头[ReactJS]

我已经按照npm包文档中的建议编写了一个axios POST请求

var data = {
    'key1': 'val1',
    'key2': 'val2'
}
axios.post(Helper.getUserAPI(), data)       
.then((response) => {
    dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
    dispatch({type: ERROR_FINDING_USER})
})
Run Code Online (Sandbox Code Playgroud)

它工作正常,但现在我修改了我的后端API以接受Headers

内容类型:'application/json'

授权:'JWT fefege ......'

现在这个请求在POSTMAN上工作正常,但是在写一个axios调用时,我遵循这个链接并且不能让它工作.

我正在得到 400 BAD Request

这是我修改过的请求

axios.post(Helper.getUserAPI(), {
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'JWT fefege...'
    },
    data
})      
.then((response) => {
    dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
    dispatch({type: ERROR_FINDING_USER})
})
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏

提前致谢.

json content-type http-post http-headers axios

83
推荐指数
6
解决办法
13万
查看次数

在使用挂钩时,React是否批量状态更新功能?

对于类组件,this.setState如果在事件处理程序内部则调用批处理.但是如果在事件处理程序之外更新状态并使用'useState'钩子会发生什么?

function Component() {
  const [a, setA] = useState('a');
  const [b, setB] = useState('b');

  function handleClick() {
    Promise.resolve().then(() => {
      setA('aa');
      setB('bb');
    });
  }

  return <button onClick={handleClick}>{a}-{b}</button>
}
Run Code Online (Sandbox Code Playgroud)

它会useState马上渲染吗?或者它会是aa - bb然后aa - b呢?

reactjs react-hooks

28
推荐指数
4
解决办法
4663
查看次数

Golang:从http.ResponseWriter获取数据以进行日志记录

我不知道这个问题是否有意义,但我想知道是否有任何方法可以获得写入的数据http.ResponseWriter.我需要它logging.

我在Golang写了一个api.

func api1(w http.ResponseWriter, req *http.Request) {       
    var requestData MyStruct
    err := json.NewDecoder(req.Body).Decode(&requestData)
    if err != nil {
        writeError(w, "JSON request is not in correct format")
        return
    }
    log.Println(" Request Data :", req.Body) // I am logging req
    result, err := compute()                 // getting result from a function

    if err != nil {
        errRes := ErrorResponse{"ERROR", err}
        response, er = json.Marshal(errRes) // getting error response
    } else {
        response, er = json.Marshal(result)
    }
    if er …
Run Code Online (Sandbox Code Playgroud)

go

10
推荐指数
1
解决办法
4136
查看次数

React上下文useReducer没有正确更新

我在让reducer与React上下文一起工作时遇到麻烦。在中buttonbar.js,有两个按钮应该用来更新状态。通过过滤当前数据来更新状态。单击按钮,我没有收到任何错误,但是它也没有执行任何操作。我认为问题出在减速器上。

context.js

import React, { useState, useEffect } from "react";
import * as moment from "moment";
import axios from "axios";

export const Context = React.createContext();

const url = "https://projects.fivethirtyeight.com/polls/polls.json";

export const filterReducer = (state, action) => {
  switch (action.type) {
    case "SHOW_ALL":
      return state.polls;
    case "SHOW_APPROVAL":
      return state.polls.filter(e => e.type === "trump-approval");
    default:
      return state.polls;
  }
};

export function Provider({ children }) {
  let intialState = {
    polls: [],
    dispatch: action => this.setState(state => filterReducer(state, action)) …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

9
推荐指数
2
解决办法
1236
查看次数

将 int 数组转换为以 ',' 分隔的字符串

我知道[]string我可以使用字符串数组,strings.Join(a []string, ',')但我想对整数数组做同样的事情[]int

我的用例是这样的查询 where variantsis[]map[string]int

 var Ids []int
    sqlStr := "select id from mapping where my_id in ("
    for _, mp := range variants {
       sqlStr += "?,"
       Ids = append(Ids, mp["id"])
    }
    sqlStr = strings.TrimRight(sqlStr, ",")
    rows, err := db.Query(sqlStr+")", strings.Join(Ids, ',')) // I can't do this because Join needs String array
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?

go

7
推荐指数
2
解决办法
1万
查看次数

如果this.node是对组件进行反应的引用,则this.node.contains不起作用

我无法访问XYZ组件。现在,我要检测是否单击了该组件。

render () {
   return(
    <XYZ className="abc" ref={node => {this.pop = node}} /> // Note, I don't have access to XYZ component
  )}
Run Code Online (Sandbox Code Playgroud)

通过阅读各种文章,我发现:

handleClickOutside(e){
    if (this.pop.contains(e.target)){
         // not clicked outside
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到Contains is undefinedthis.pop是一个React component。如何解决呢?

reactjs

6
推荐指数
2
解决办法
8110
查看次数

去Http错误处理

关于错误处理应该怎么做,我有点困惑.我已经阅读了很多关于它的帖子,但仍然无法将它们应用于我的代码结构.我是新来的,所以请帮忙.

有一个主要功能,它处理两个api:api1和api2

func main() {
    http.HandleFunc("/offers", api1)
    http.HandleFunc("/getOffersList", api2)
    err := http.ListenAndServe(":8080", nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}


func api1(w http.ResponseWriter, req *http.Request) {
    validateRequestHeader(w, req, "GET")
    // code here....
}

func api2(w http.ResponseWriter, req *http.Request) {
    validateRequestHeader(w, req, "POST")
    //code here....
}

func validateRequestHeader(w http.ResponseWriter, req *http.Request, allowedMethod string) {
    // allow cross domain AJAX requests
    w.Header().Set("Content-Type", "application/json")
    if origin := req.Header.Get("Origin"); origin != "" {
        w.Header().Set("Access-Control-Allow-Origin", origin)
        w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") …
Run Code Online (Sandbox Code Playgroud)

error-handling go

4
推荐指数
1
解决办法
7534
查看次数

无法从axios请求中捕获并记录错误响应

我在我的反应应用程序中有一个axios请求,我正在遵循axios npm docs.

这是我的axios请求

 axios.post(helper.getLoginApi(), data)
        .then((response) => {
            console.log(response);

            this.props.history.push(from.pathname)
        })
        .catch((error)=> {
            console.log(error);
        })
Run Code Online (Sandbox Code Playgroud)

我能够成功记录成功请求的数据.但是,当我故意产生错误并尝试console.log时,我没有得到结果记录,我只是看到了

POST HTTP://本地主机:3000 /登录 401(未授权):3000 /登录:1
错误:请求失败,状态码401 login.js:66

at createError(createError.js:16)

在定居(settle.js:18)

在XMLHttpRequest.handleLoad(xhr.js:77)

但是,当我在Chrome控制台中转到"网络标签"时,我会看到以下回复.

在此输入图像描述

提前感谢您的帮助.

error-handling node.js reactjs axios

4
推荐指数
1
解决办法
6618
查看次数

在golang中获取TTFB(第一个字节的时间)值

我试图获得价值TTFB和连接价值

    c := exec.Command(
        "curl", "-w",
        "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total}",
        "-o",
        "/dev/null",
        "http://my.domain/favicon.ico")

    cID, err := c.Run()
    fmt.Printf("%s", cID)
Run Code Online (Sandbox Code Playgroud)

它打印出像刺痛一样的东西

Connect: 0.205 TTFB: 0.353 Total time: 0.354
Run Code Online (Sandbox Code Playgroud)

但是,我只需要TTFB , Connect, Total timegolang变量中的value 值.

另外,有没有什么办法可以在没有专门使用curl的情况下获得值?

curl http go

4
推荐指数
1
解决办法
1694
查看次数

在 curl 中的 get 请求中发送多个请求参数,只有一个参数正在运行

我正在尝试通过命令行向我的 api 发出 curl get 请求。

curl http://localhost:8080/getList?id=100&mrp=50&discount=0
Run Code Online (Sandbox Code Playgroud)

但是当我在我的 api 中记录请求时,我得到:

&{GET /getList?id=100 HTTP/1.1 1 1  which means that only id is being sent through the request. I don't understand why it is happening.
Run Code Online (Sandbox Code Playgroud)

unix curl get

2
推荐指数
1
解决办法
8219
查看次数