如何使用HTTP请求从Laravel API检索数据?

时间:2019-03-22 00:46:24

标签: php ajax laravel api xmlhttprequest

我目前正在学习Laravel API,并且已经开发了一个非常简单的API,只需在浏览器中输入127.0.0.1:8000/api/XXX,即可从数据库中检索数据,但是,当我尝试使用ajax调用时为了从完全相同的网址获取数据,ajax始终显示HTTP请求失败,我使用的ajax代码如下:

  $.ajax({
    url: "127.0.0.1:8000/api/XXX",
    success: function(data) {
      let response = JSON.parse(data);
      displayResult(response, 1);
    }
  })
  .done(function() {
    alert( "success" );
  })
  .fail(function() {
    alert( "error" );
  })

并且此代码始终导致alert("error");,因此,我想知道是否可能需要编写一些路由才能使API正确处理HTTP请求?我已经在routes \ api.php中定义了一条路由:

Route::apiResource('XXX', 'XXXController');

PS:在向浏览器输入API URL时,它工作正常,在使用API​​ URL进行Ajax调用时出错。

编辑

这些是我使用function(jqXHR, textStatus, errorThrown)捕获错误后从浏览器控制台中获得的错误

DOMException: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL
    at Object.send (https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:79420)
    at Function.ajax (https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:77118)
    at retrieveAllBooks (http://127.0.0.1:8000/js/api-query.js:25:5)
    at HTMLInputElement.<anonymous> (http://127.0.0.1:8000/js/api-query.js:10:7)
    at HTMLInputElement.dispatch (https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:41772)
    at HTMLInputElement.y.handle (https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:39791)

我不确定为什么它是无效的URL,因为如果我将此链接复制并粘贴到浏览器,则不会出错...

1 个答案:

答案 0 :(得分:0)

(代表问题作者发布)

实际上,解决方案很简单,只需在URL中添加http://。