Ajax to Laravel 返回 404,Responsejson 未定义
Ajax to Laravel Returns 404 and Responsejson is undefined
当我$.ajax到从跨域请求执行以下控制器的路由时,我得到一个空响应。当我取消注释var_dump行时,我得到一个包含数据的响应,否则我得到一个 404 响应,并且 responsejson 对象未定义。任何帮助非常感谢。当我直接在浏览器中访问同一路由的 get 等效项时,我得到一个有效的 json 响应。
<?php
use App'Models'User;
class AuthenticationController extends 'BaseController {
public function getLogin() {
return $this->postLogin();
}
public function postLogin() {
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
try {
$user = Sentry::authenticate($credentials, false);
if ($user) {
//var_dump(array('flash' => 'Authentication failed'));
//return Response::json(array('flash' => 'Authentication failed'), 401);
return $user->toJson();
}
} catch (Exception $e) {
return Response::json(array('flash' => 'Authentication failed'), 401);
}
}
public function getLogout() {
Sentry::logout();
return Response::json(array('flash' => 'Logged out'), 200);
//return Redirect::route('admin.login');
}
}
你有没有试过这样的事情:
try {
$user = Sentry::authenticate($credentials, false);
if ($user) {
return Response::json($user);
# or
Response::json($user)->send();
}
} catch (Exception $e) {
return Response::json(array('flash' => 'Authentication failed'), 401);
}
事实证明,我发送了两次标头。我最初在使用 CORS 时遇到了问题,因为我从在本地主机上运行的 Angular JS 前端连接到这个同样在本地主机上运行的 laravel API,但在不同的端口上。我在路由的顶部发送了一个标题.php如下所示:
header('Access-Control-Allow-Origin', '*');
文件,即使我的过滤器.php已经有如下所示的代码:
App::before(function($request)
{
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
header('Access-Control-Allow-Origin', '*');
header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
header('Access-Control-Allow-Headers', 'Origin, Content-Type, Accept, Authorization, X-Request-With');
header('Access-Control-Allow-Credentials', 'true');
exit;
}
});
App::after(function($request, $response)
{
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Allow', 'GET, POST, OPTIONS');
$response->headers->set('Access-Control-Allow-Headers', 'Origin, Content-Type, Accept, Authorization, X-Requested-With');
$response->headers->set('Access-Control-Allow-Credentials', 'true');
return $response;
});
我希望这对某人有所帮助。
相关文章:
- $.get-response没有responseJSON方法,但当我在Chrome开发工具中绑定它时,它确实有
- 未捕获的类型错误:无法读取属性'fitBounds'谷歌地图(markrWithlabel js)中未定
- emscripten+sdl=引发异常:TypeError:无法设置属性'widthNative'的未定
- ExceptionsManager.js:61无法读取属性'getCurrentPosition'的未定
- 未捕获的ReferenceError:未定义项
- 为什么我会得到错误Uncaught TypeError:无法设置属性'显示'在Javascript中未定
- 找不到未定错误的属性长度
- Ajax to Laravel 返回 404,Responsejson 未定义
- JSON 对象中的未定义项
- 未捕获的ReferenceError:未定义父级
- 当使用window.open将数据从父级传递到子级时,为什么我会得到'无法读取属性'元素'的未定
- 如何在dojo或JavaScript中检查多个未定义项
- 使用sinon.fakeServer时,responseJson不存在
- 防止在一行代码中出现未定义项
- 尝试将responseJSON存储在变量中导致";未定义的";错误
- uncatch TypeError:无法读取 javascript / React-router / React 中未定
- Requirejs + Backbone Uncatch TypeError: 無法讀取未定義的屬性「Model」
- 砌体布局未定心
- 为什么我得到'TypeError: Cannot read property 'props'未定
- 提取responseJSON对象