javascript - 使用 fetch() 或 XMR/any_other_type_of_ajax-request 将特定数据放入 ajax 请求中,就像 jQuery ajax 中一样

标签 javascript jquery ajax xmlhttprequest fetch-api

我有一个使用 jQuery ajax() 的简单请求

getJson() {
    $.ajax({
            url: 'http://api.rss2json.com/v1/api.json',
            method: 'GET',
            dataType: 'json',
            data: {
                rss_url: 'https://news.yandex.ru/sport.rss',
                api_key: 'lpdljjsrqnqsmtp0zqbngg0yjoeykl0iiw6f5lvnf',
                count: 15
            }
        })
        // other code
}

这是对服务的请求,它获取 rss(来自 rss_url)并返回 JSON。一切都很好,但现在我必须在没有 jQuery 的情况下发出相同的 ajax 请求。 此请求的所有参数必须与此类似(因为服务仅理解这些参数)。

我尝试使用fetch()做同样的事情:

getJson() {
    let url = 'http://api.rss2json.com/v1/api.json';
    let config = {
        method: 'GET',
        dataType: 'json',
        data: {
            'rss_url': 'https://news.yandex.ru/politics.rss',
            'api_key': 'lpdljjsrqnqsmtp0zqbngg0yjoeykl0iiw6f5lvnf',
            count: 15
        }
    }

    fetch(url, config)
        .then(response => {
            console.log(response);
        })
        .catch(error => {
            console.log(error);
        });
}

尝试使用XMLHttpRequest

  getJson() {
      let xhr = new XMLHttpRequest();
      let jsonData = JSON.stringify({
                rss_url: 'https://news.yandex.ru/politics.rss',
                api_key: 'lpdljjsrqnqsmtp0zqbngg0yjoeykl0iiw6f5lvnf',
                count: 15
      });
      xhr.open('GET', 'http://api.rss2json.com/v1/api.json', true);
      xhr.onreadystatechange = () => {
          xhr.onload = () => {
              if(xhr.status === 200) {
                  console.log(xhr.response);
              }
              else {
                  console.log('error ' + xhr.status);
              }
          };
          xhr.onerror = () => {
              console.log('Connection error');
          }
      };
      xhr.send(jsonData);

  }

结果 - 错误
{"status":"error","message":"需要rss_url参数"}

任何帮助将不胜感激。

最佳答案

如果您想使用这些参数执行 GET 操作,只需将它们放入您为 fetch() 或 XHR 提供的 URL 中即可:

let url = 'http://api.rss2json.com/v1/api.json?rss_url=https://news.yandex.ru/politics.rss&api_key=lpdljjsrqnqsmtp0zqbngg0yjoeykl0iiw6f5lvnf&count=15';

关于javascript - 使用 fetch() 或 XMR/any_other_type_of_ajax-request 将特定数据放入 ajax 请求中,就像 jQuery ajax 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42191259/

相关文章:

javascript - 我可以以某种方式使用目标 =""——还是必须使用 javascript 来满足这个要求?

javascript - 为什么子元素会导致 'dropleave'被调用(拖放文件上传)?

php - 无法使用ajax将数据插入数据库

php - SilverStripe 自定义电子邮件表单 - jQuery.ajax 不将变量传递到服务器

javascript - 如何申请:hover to an element

javascript - 我的网站无法在 ie8 HTML 解析错误 KB927917 中显示结果

javascript - 使用 Javascript 和 CSS 动画创建文本选取框

javascript这种形式相当于jquery形式

javascript - 如何将 <li> 附加到 <ul> 并同时使用 jquery 在 <li> 上设置 css

java - 无需 PrintWriter 的 Ajax 和 Struts 1.x 集成