为什么我的JavaScript API调用返回400错误?

时间:2018-11-15 22:31:31

标签: javascript api http-status-code-400

我有一个API调用正在接收“无法加载资源” 400错误。我尝试删除Cookie和缓存并使用其他浏览器。当我看到图像大小可能是问题时,我也删除了图像。我读到了有关HTTP标头的需求,但不了解在我的代码中该去哪儿或它的外观如何。任何帮助将不胜感激!这是我的JS:

    const app = document.getElementById('root');

    const container = document.createElement('div');
    container.setAttribute('class', 'container');

    app.appendChild(container);

    var request = new XMLHttpRequest();
    request.open('GET', 'https://www.themuse.com/api/public/jobs', true);
    request.onload = function () {

    // Begin accessing JSON data here
    var data = JSON.parse(this.response);
    if (request.status >= 200 && request.status < 400) {
    data.forEach(job => {
    const card = document.createElement('div');
    card.setAttribute('class', 'card');

    const h1 = document.createElement('h1');
    h1.textContent = job.title;

    const p = document.createElement('p');
    job.description = job.description.substring(0, 300);
    p.textContent = `${job.description}...`;

    container.appendChild(card);
    card.appendChild(h1);
    card.appendChild(p);
      });
    } else {
    const errorMessage = document.createElement('marquee');
    errorMessage.textContent = `Darn, it's not working!`;
    app.appendChild(errorMessage);
       }
         }

    request.send();

1 个答案:

答案 0 :(得分:0)

如果您尝试在浏览器中加载https://www.themuse.com/api/public/jobs,则会显示400错误以及以下错误消息:

  

{“代码”:400,“错误”:“'page'的参数无效”}

该页面要求您通过page请求为其提供一个名为GET的非空变量。

如果您将页面加载为https://www.themuse.com/api/public/jobs?page=1(例如),则可以成功加载数据,问题就会消失!