我正在尝试将数据从角度js发送到服务器.. Laravel5正在我的服务器上运行..我可以使用此获取数据但无法发送数据..我的代码是下面的
AngularJs代码:
var request = $http({
method: "get",
url: "http://www.myserver.com/json",
data: { email: $scope.email },
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})
request.success(function (data) {
alert(data.email);
});
服务器代码:
路线为Route::get('json','JsonController@Json_login');
控制器代码
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Input;
class JsonController extends Controller
{
public function Json_login()
{
$email = Input::get('email');
$arr_Id_Status=array('email'=>$email);
echo json_encode($arr_Id_Status);
}
}
但它给了我 null 警告
答案 0 :(得分:0)
听起来你应该使用POST而不是GET请求。您需要在服务器上创建一个合适的POST路由,但它在客户端的语法几乎相同,只需将GET更改为POST。
var request = $http({
method: "POST",
url: "http://www.saadetera.com/json",
data: { email: $scope.email },
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success(function (data) {
alert(data.email);
});
暂时不使用Laravel,但它会像:
Route::post('json','JsonController@handleLoginRequest');
答案 1 :(得分:0)
理想情况下,发送数据需要POST方法,而提取将使用GET方法。假设您要调用名为 your_controller 的控制器并使用其 your_method 函数,让我们完成整个流程:
这适合Laravel 5
Laravel控制器:
use Illuminate\Http\Request;
public function your_method(Request $request)
{
$data = $request->input(my_data);
//Server side data processing here
//Returning Json or anything else here
return response()->json(your_answer_here);
}
路线:
Route::post('your_url', ['uses' => 'your_controller@your_method']);
AngularJS:这是允许数据发送的代码块,它需要$ http服务。我们假设您的数据包含在my_data对象中。
$http.post('your_url', my_data)
.then(you_callback_success, your_callback_fail);