我目前正在学习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,因为如果我将此链接复制并粘贴到浏览器,则不会出错...
答案 0 :(得分:0)
(代表问题作者发布)。
实际上,解决方案很简单,只需在URL中添加http://。