如何将XMLHttpRequest转换为Fetch?

时间:2018-08-09 14:30:09

标签: reactjs asp.net-core-mvc fetch

我再次难以理解如何使用Fetch。我需要将对象发送到ASP.NET控制器。

我有XMLHttpRequest(有效):

handleProductSubmit(product) {
        const products = this.state.data;
        product.productID = products.length + 1;
        const newProducts = products.concat([product]);
        this.setState({ data: newProducts });

        const data = new FormData();
        data.append('Name', product.Name);
        data.append('Description', product.Description);

        const xhr = new XMLHttpRequest();
        xhr.open('get', this.props.submitUrl, true);
        xhr.onload = () => this.loadProductsFromServer();
        xhr.send(data);
    }

使用Fetch,我只能算出:

handleProductSubmit(product) {
        const data = new FormData();
        data.append('Name', product.Name);
        data.append('Description', product.Description);
        console.log(data);
        fetch("/comments/new?product=" + encodeURIComponent(data))
            .then(res => res.json())
            .then(res => {
                console.log(res);
            })
            .catch(error => {
                console.error(error);
            });
    }

它返回到控制器null

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

const queryParams = `Name=${encodeURIComponent(product.name)}&Description=${encodeURIComponent(product.Description)}`;
fetch(`/comments/new?${queryParams}`)