Php 如何使用HTTP请求从LaravelAPI检索数据?

Php 如何使用HTTP请求从LaravelAPI检索数据?,php,ajax,laravel,api,xmlhttprequest,Php,Ajax,Laravel,Api,Xmlhttprequest,我目前正在学习Laravel API,并且已经开发了一个非常简单的API,只需在浏览器中输入127.0.0.1:8000/API/XXX即可从数据库检索数据,但是,当我尝试使用ajax调用从完全相同的url获取数据时,ajax总是显示HTTP请求失败,我使用的ajax代码如下: $.ajax({ url: "127.0.0.1:8000/api/XXX", success: function(data) { let response = JSON.parse(da

我目前正在学习Laravel API,并且已经开发了一个非常简单的API,只需在浏览器中输入127.0.0.1:8000/API/XXX即可从数据库检索数据,但是,当我尝试使用ajax调用从完全相同的url获取数据时,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" );
  })
该代码总是导致
警报(“错误”),因此我想知道,为了让API正确处理HTTP请求,可能需要编写一些路由?我已经在routes\api.php中定义了一个路由:

Route::apiResource('XXX', 'XXXController');
PS:在浏览器中输入API URL时,它工作正常,在使用API URL进行ajax调用时出错

编辑 这些是我在使用
函数(jqXHR、textStatus、errorshown)
捕获错误后从浏览器控制台得到的错误

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)
DomeException:未能对“XMLHttpRequest”执行“open”:无效URL
在Object.send(https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:79420)
在Function.ajax(https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:77118)
在检索所有书籍时(http://127.0.0.1:8000/js/api-query.js:25:5)
在HTMLInputElement。(http://127.0.0.1:8000/js/api-query.js:10:7)
在HTMLInputElement.dispatch(https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:41772)
在HTMLInputElement.y.handle(https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:39791)
我不太清楚为什么它是一个无效的URL,因为如果我将此链接复制并粘贴到浏览器上,就不会出错…

(代表问题作者发布)


事实上,解决方案很简单,只需将http://添加到url。

你能检查一下你的日志吗?我指的是laravel的错误日志。javascript运行
fail()
部分意味着服务器返回的状态代码不是
200
。检查日志,看看ajax请求中出现的错误有助于解决问题。如果您仍然无法解决,请将日志张贴在此处,以便我们可以帮助您。Laravel日志?没什么,让我运行更多的ajax调用,看看是否有任何错误被记录在日志中添加
http://
…好吧。。。。。。。添加
http://
实际上解决了这个问题。。。谢谢