Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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
调用我的API总是返回index.php文件。为什么会这样?_Php_Laravel_Routes - Fatal编程技术网

调用我的API总是返回index.php文件。为什么会这样?

调用我的API总是返回index.php文件。为什么会这样?,php,laravel,routes,Php,Laravel,Routes,我在我的公用文件夹(Laravel)中创建了一个index.php文件,在我的route/API.php中创建了一个API路由,其中url'submit'和请求方法post,还有一个控制器,其中包含一个函数submit(),在API调用中执行 我尝试使用以下url在Postman上测试路线: http://mysite.local/api/submit 这是作为POST请求进行测试的,但出于某种原因,它一直返回index.php文件 我甚至添加了一个返回“Test”在我的控制器中的submit(

我在我的公用文件夹(Laravel)中创建了一个index.php文件,在我的route/API.php中创建了一个API路由,其中url
'submit'
和请求方法
post
,还有一个控制器,其中包含一个函数
submit()
,在API调用中执行

我尝试使用以下url在Postman上测试路线:

http://mysite.local/api/submit

这是作为
POST
请求进行测试的,但出于某种原因,它一直返回index.php文件

我甚至添加了一个
返回“Test”在我的控制器中的
submit()
函数的开头,查看问题是否出在函数中的代码上(希望这有意义,使用我的术语)

但再一次,当我在PostMan上测试API时,它仍然返回index.php

这是我的路线和控制器:

route/api.php

Route::post('submit', 'SubmitFormController@submit');
// I've also tried the following:
// Route::post('submit', 'App\Http\Controllers\SubmitFormController@submit');
class SubmitFormController extends Controller {
    public function submit() {
        return "Test";

        /** .. More code below .. **/
    }
}
SubmitFormController.php

Route::post('submit', 'SubmitFormController@submit');
// I've also tried the following:
// Route::post('submit', 'App\Http\Controllers\SubmitFormController@submit');
class SubmitFormController extends Controller {
    public function submit() {
        return "Test";

        /** .. More code below .. **/
    }
}
我甚至尝试更改
返回“Test”
to
返回json_encode(['test'=>'testvar'])认为这会有帮助。但是Postman仍然返回index.php

我的猜测是,它将我的API路由视为一个“目录”,但我可能错了


更新:我注意到另一件奇怪的事情发生了

因此,当我转到我的本地主机,即
mysite.local
,它会将我带到公共文件夹中的
index.php
文件,这是它应该做的。然而,当我输入类似于
mysite.local/skjah/asjdklasjd/asjdklasj
(这显然是胡言乱语,不是实际的目录)的内容时,它每次都会重定向到
index.php

所以我假设,因为
api\submit
不是
public
中的目录,它只是重定向到
index.php
。但我不知道为什么,因为这在过去是有效的,而且我的
.htaccess
没有被触动过

希望这些信息能有所帮助


更新:刚刚修改了代码,注意到问题在于我的
.htaccess
,正如你们中的一些人所指出的那样。这是我的
.htaccess
(在我制作项目时,直接从盒子里拿出来,没有碰它)


选项-多视图-索引
重新启动发动机
#句柄授权头
RewriteCond%{HTTP:Authorization}。
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
#如果不是文件夹,则重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_URI}(+)/$
重写规则^1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
我将行
RewriteRule^index.php[L]
更改为
RewriteRule^index123.php[L]
,只是为了看看会发生什么,对我的路由函数的API调用不再起作用。这告诉我它和这个文件有关


就我所知,我还在寻找解决办法。希望这有助于澄清问题。

我的用户还不能发表评论,所以。。这就是答案

总的来说,无论何时发生这种情况,都是一些页面服务器(本例为apache)配置问题,而不是php

考虑到你提到的“路线”,我想你正在使用” 如果您的httpd.conf(和.htaccess)中有类似于下面的配置的内容丢失或配置错误,请查看一下(PS:每次更改配置的时间,验证配置中的文件是否与您使用的系统兼容-apache版本和php版本)


PS:API调用(如果使用80或443端口)在这台计算机上不应该工作得很好,如果他们这样做了,这可能是对.htacces文件的错误配置。

我的用户还不能评论,所以..这里是一个答案

总的来说,无论何时发生这种情况,都是一些页面服务器(本例为apache)配置问题,而不是php

考虑到你提到的“路线”,我想你正在使用” 如果您的httpd.conf(和.htaccess)中有类似于下面的配置的内容丢失或配置错误,请查看一下(PS:每次更改配置的时间,验证配置中的文件是否与您使用的系统兼容-apache版本和php版本)

PS:API调用(如果使用80或443端口)在这台计算机上不应该工作得很好,如果它们这样做,则可能是对.htacces文件的错误配置。

发现了问题

我试图访问控制器和其他文件中的“customer”表,而实际的表名是“customers”

巨面掌

希望这能帮助一些人,在你像我一样紧张之前检查你代码中的拼写,哈哈。

发现了问题

我试图访问控制器和其他文件中的“customer”表,而实际的表名是“customers”

巨面掌


希望这能帮助一些人,在你像我一样紧张之前检查你代码中的拼写哈哈。

你的路线不应该是
route::post('/api/submit','SubmitFormController@submit');?您如何运行应用程序?您是使用php artisan serve运行它,还是使用一些设置,如
xampp
?@bassxzero-我尝试过,同样的问题也发生了。它是否返回
index.php
?@UndercoverCoder的源代码?那么您还没有正确设置
wamp
,请检查它是否允许.htaccess文件,您的路由be
route::post('/api/submit','SubmitFormController@submit');?您如何运行应用程序?您是使用php artisan serve运行它,还是使用类似于
xampp
的设置?@bassxzero-我试过了,同样的问题