Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用fetch()或XMR/任何其他类型的\u ajax-request将特定数据放入ajax请求中,就像jQuery ajax中一样_Javascript_Jquery_Ajax_Xmlhttprequest_Fetch Api - Fatal编程技术网

Javascript 使用fetch()或XMR/任何其他类型的\u ajax-request将特定数据放入ajax请求中,就像jQuery ajax中一样

Javascript 使用fetch()或XMR/任何其他类型的\u ajax-request将特定数据放入ajax请求中,就像jQuery ajax中一样,javascript,jquery,ajax,xmlhttprequest,fetch-api,Javascript,Jquery,Ajax,Xmlhttprequest,Fetch Api,我有一个使用jQuery ajax()的简单请求 它是对服务的请求,该服务接收rss(来自rss_url)并返回JSON。一切都很好,但是现在我必须在没有jQuery的情况下发出相同的ajax请求。 对于所有参数,该请求必须是这样的(因为服务只理解这些参数) 我尝试使用fetch()执行相同的操作: getJson() { let url = 'http://api.rss2json.com/v1/api.json'; let config = { method:

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

它是对服务的请求,该服务接收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);

  }
因此-错误
{“状态”:“错误”,“消息”:“
rss\u 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';

你知道Mozilla有一个很酷的地方,我敢说那里有关于这类事情的文档。。。对我知道。我从那里获取了这个示例(url,config)。但是谢谢你@DarkrumIf如果你读得正确,你会注意到在requests only body上没有数据对象,GET也不能有body。你的jQuery ajax工作的原因是,带有body的GET被转换成查询字符串,即使它应该一起失败,但这就是处理它的方法。@Darkrum所以,现在我了解了jQuery
GET
的工作原理。谢谢你的解释。
let url = 'http://api.rss2json.com/v1/api.json?rss_url=https://news.yandex.ru/politics.rss&api_key=lpdljjsrqnqsmtp0zqbngg0yjoeykl0iiw6f5lvnf&count=15';