【发布时间】:2014-04-26 11:46:01
【问题描述】:
我一定是遗漏了什么,没想到这会是个问题。
我有一个登录表单,虽然它在同一个域上,但它与 laravel 表单没有连接,并且在“登录”处有一个带有 laravel 的 POST 路由。
我可以将其更改为 GET 并且一切正常,但我想使用 POST。
/online/index.html
$("#login").click(function(e){
console.log( $("#loginForm").serialize() );
var request = $.ajax({
url: "../login/",
type: "POST",
data: { test : "someuser" },
dataType: "json"
});
request.done(function( data ) {
console.log("Complete");
console.log(data);
});
request.fail(function( jqXHR, textStatus ) {
console.log("Failed");
console.log(textStatus);
});
});
Route::post('login', array('as' => 'login', 'uses' => 'AuthController@doLogin'));
(在 /online/ 下面)
class AuthController extends Controller {
public function doLogin(){
$username = Input::get('username');
$password = Input::get('password');
return Response::json(Input::all());
}
}
在 javascript 控制台中,当您按下登录时,它会显示...
Complete
[]
当它应该说这样的话时......
Complete
[ test => "someuser" ]
使用 Laravel 4、jQuery 1.8.3。任何想法都会很棒...谢谢!
【问题讨论】:
-
如果您使用的是 chrome / safari,请打开网络选项卡并检查发布数据是否按照您的意图发送
-
按预期发送。如果我将 ajax 调用更改为 get,一切都会按预期工作。只是当它是一个 POST 调用时,值不会传递给 laravel。
-
Input::json()有效吗?如果是这样,您需要将 AJAX 请求的内容类型标头更改为application/json。 -
您在路由文件中配置了“post”类型的路由?
-
Route::post('login', array('as' => 'login', 'uses' => 'AuthController@doLogin'));
标签: javascript php jquery ajax laravel-4