尝试使用ajax在Phalcon中调用DELETE或PUT时,我收到404错误.我能够做一个GET.
我的阿贾克斯:
$.ajax({
url: 'http://localhost/person/blah/5',
type: 'DELETE',
success: function (data) {
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
我的PHP
$app->delete('/person/blah/{id:[0-9]+}', function($id) {
$response = new Phalcon\Http\Response();
$response->setJsonContent(array('status' => 'OK', 'data' => array('id' => $id)));
return $response;
});
Run Code Online (Sandbox Code Playgroud)
在此之前,我遇到了DELETE,PUT和GET的CORS问题.我更改了我的.htaccess文件以允许访问控制,并且GET开始工作.但是,我现在有404问题DELETE和PUT.
这是我的.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "DELETE, PUT, GET"
Header set Access-Control-Allow-Headers: "X-Requested-With, Content-Type"
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我的猜测是这个问题与CORS有关.javascript正在我的计算机上运行(而非服务器).我的javascript在C:/Users/username/Desktop/test.html中.我曾在Firefox和Chrome上试过并遇到同样的问题.
一些额外的信息
响应标题
Access-Control-Allow-Head... X-Requested-With, Content-Type
Access-Control-Allow-Meth... DELETE, PUT, GET
Connection Keep-Alive
Content-Length 15
Content-Type …Run Code Online (Sandbox Code Playgroud)