cURL 命令有效,但 Fetch API 调用在响应有效负载中返回 200 和 400 验证错误

我在使用 Fetch 发送 POST 请求以缩短 URL 时遇到了一个大问题。


我很好并且能够通过 cURL 命令对这个 url 缩短器 API 执行 POST 请求:


卷曲命令


curl -d 'api_key=xxxxxxxxxxxxxx&url=https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch' http://fakeurlforexample/api/shorten/


回复


{"url": "https://fakeurlforexample/BdzfM3", "long_url": "https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch", "name": "BdzfM3"}


我从 API 获得了这个很棒的响应负载。


但是,当我使用下面提供的代码通过Fetch执行此操作时,我得到 200 OK 并且在响应有效负载中我有一个 400 验证错误,我缺少 API 密钥。


但是,开发人员控制台中的请求负载显示参数已正确传递给 API(我认为...)


{"api_key":"xxxxxxxxxxxxxxxxx","url":"https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch"}


这是我的代码:


let get_url = 'http://fakeurlforexample.com/api/shorten/';


    let request = new Request(get_url, {

        method: 'POST', 

        body: JSON.stringify({'api_key':'xxxxxxxxx', 'url': 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch'})

    });


    fetch(request)

    .then(function() {

        console.log(request);

        console.log(request.url);

     })

有没有人看到我在这里犯的错误?


本周被这个问题打败了几个小时。感谢您的任何帮助和帮助!不,我不能像现在这样轻松地将代码转换为 axios。这是一个演示,所以我真的只是想让它工作。


qq_遁去的一_1
浏览 395回答 2
2回答

慕桂英4014372

可能是因为您定义了 2 次标题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript