如何获取 DuckDuckGo API

问题描述

我制作了一个网页来获得 DuckDuckGo Instant Answer API 结果, https://adamorielly.github.io/Ducksearch/

但是当我尝试发出 fetch GET 请求时,我收到了 405 Method Not Allowed 响应,跨域请求被阻止:同源策略不允许。

我猜这个 API 的目的是允许其他应用程序获取搜索结果并在他们的应用程序上呈现它们, 我做错了吗? ,这是我的代码

<section class="bd-container">
    <div class="duck__search">
        <div class="form__div">
            <input type="text" id="input1" class="form__input" placeholder="enter your search query">
            <label for="" class="form__label"></label>
        </div>
        <input type="submit" class="button" id="form__button" value="Search">
        <div class="duck__result" id="duck__result"></div>
    </div>
</section>

我的 JavaScript:

const searchBtn = document.getElementById('form__button')
searchBtn.addEventListener('click',() => {
    let formInputs = document.getElementById('input1').value
    fetch('https://api.duckduckgo.com/?q='+formInputs+'&format=json',{
        method: 'GET',headers: {
            'Content-Type': 'application/json'
        }
    }).then(res => {
        console.log(res.status)
        console.log(res.statusText)
        let result = JSON.parse(res.body)
    }).then(data => console.log(data)).catch(err => console.error('err'))
})

如果 API 不允许获取请求,还有其他方法可以做到吗

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...