Ionic 3 POST 请求 Laravel
Ionic 3 POST request to Laravel
我在 laravel 中使用 Cors,我的 cors.php 是
<?php
namespace App\Http\Middleware;
use Closure;
class Cors
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE,
OPTIONS');
header('Content-Type:application/json; charset=utf-8');
}
}
页面根目录在 laravel web.php;
Route::group(['middleware' => 'cors'], function()
{
Route::get('/news_json', 'PagesController@news_json');
Route::post('/post_request', 'PagesController@post_request');
});
现在,在我的离子应用程序中;当我 post 数据时出现错误。 Error.status 是“419”。我不在离子应用程序中使用 csrf_token。
我在 ionic 中有一个函数;
getToken() {
let token = document.querySelector('meta[property="csrf-token"]')
['content'];
return token;
}
我在 ionic3/src/index.html 中使用 meta 属性 ,这个 meta 属性 是;
<meta property="csrf-token" name="csrf-token" content="{{
csrf_token() }}">
我在 ionic 中的提交功能;
var encrypt = new Encrypt.JSEncrypt();
encrypt.setPublicKey(pubkey);
var link ='http://172.16.1.19/post_request';
var myData = JSON.stringify({name: this.data.name, telephone: this.data.telephone, email: this.data.email, ask: this.data.ask});
var encrypted = encrypt.encrypt(myData);
var post = {form: encrypted, type: 'baskan'};
var options = new RequestOptions({headers: new Headers({
'Content-Type' : 'application/x-www-form-urlencoded',
'X-CSRF-TOKEN': this.getToken()
})
});
this.http.post(link, post, options).then((data) => {
this.toast.create({
message: `İsteğiniz başarıyla gönderildi!.`,
duration: 3000
}).present();
this.data.name="";
this.data.telephone="";
this.data.email="";
this.data.ask="";
}, error =>{
this.data.ask = error.status;
});
我 post 到 laravel 其他脚本但是当我 post 带有 ionic 的数据出现错误时,这个 error.status 是 '419' 。你能帮帮我吗?
您必须在 App/Middleware/VerifyCsrfToken.php 中添加您的 post 位置;
protected $except = [
'/post_request',
];
我在 laravel 中使用 Cors,我的 cors.php 是
<?php
namespace App\Http\Middleware;
use Closure;
class Cors
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE,
OPTIONS');
header('Content-Type:application/json; charset=utf-8');
}
}
页面根目录在 laravel web.php;
Route::group(['middleware' => 'cors'], function()
{
Route::get('/news_json', 'PagesController@news_json');
Route::post('/post_request', 'PagesController@post_request');
});
现在,在我的离子应用程序中;当我 post 数据时出现错误。 Error.status 是“419”。我不在离子应用程序中使用 csrf_token。 我在 ionic 中有一个函数;
getToken() {
let token = document.querySelector('meta[property="csrf-token"]')
['content'];
return token;
}
我在 ionic3/src/index.html 中使用 meta 属性 ,这个 meta 属性 是;
<meta property="csrf-token" name="csrf-token" content="{{
csrf_token() }}">
我在 ionic 中的提交功能;
var encrypt = new Encrypt.JSEncrypt();
encrypt.setPublicKey(pubkey);
var link ='http://172.16.1.19/post_request';
var myData = JSON.stringify({name: this.data.name, telephone: this.data.telephone, email: this.data.email, ask: this.data.ask});
var encrypted = encrypt.encrypt(myData);
var post = {form: encrypted, type: 'baskan'};
var options = new RequestOptions({headers: new Headers({
'Content-Type' : 'application/x-www-form-urlencoded',
'X-CSRF-TOKEN': this.getToken()
})
});
this.http.post(link, post, options).then((data) => {
this.toast.create({
message: `İsteğiniz başarıyla gönderildi!.`,
duration: 3000
}).present();
this.data.name="";
this.data.telephone="";
this.data.email="";
this.data.ask="";
}, error =>{
this.data.ask = error.status;
});
我 post 到 laravel 其他脚本但是当我 post 带有 ionic 的数据出现错误时,这个 error.status 是 '419' 。你能帮帮我吗?
您必须在 App/Middleware/VerifyCsrfToken.php 中添加您的 post 位置;
protected $except = [
'/post_request',
];