【发布时间】:2019-05-06 02:33:36
【问题描述】:
您好,我是 API 制作和使用的新手,我使用 Laravel 作为 api 部分,并使用 angular 的 HttpClient 发出请求,这是代码
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
@Injectable()
export class ApitestProvider {
tests;
apiUrl = "http://127.0.0.1:8000/api";
testAdded;
testGotten;
testDeleted;
constructor(public http: HttpClient) {
console.log('Hello ApitestProvider Provider');
}
addTest(data) {
/*let nData= JSON.stringify(data);
console.log(nData);*/
let obj = {name : "test"};
this.http.post(this.apiUrl + "/tests",JSON.stringify(obj))
.subscribe(res => {
console.log(res);
this.testAdded = res;
}, (err) => {
console.log(err);
});
}
为了测试目的而修改的代码,这是我的控制器的 laravel 代码
public function store(Request $request){
return Testme::create($request->all());
}
这是初始迁移的代码
class CreateTestmesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('testmes', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('testmes');
}
}
同样在模型中唯一可填写的是“姓名”,提前致谢。
【问题讨论】:
-
尝试调试结果,在
store()函数的第一行添加dd($request->all());。 -
不好,我应该在哪里看到结果
-
浏览器中的开发者工具。您是如何发现错误的?
-
我刚刚做了,似乎它阻止了消息,显示此跨域请求被阻止:同源策略不允许读取127.0.0.1:8000/api/tests 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)
-
打开您的 app/middlware/kernal.php 文件并注释掉这一行:\App\Http\Middleware\VerifyCsrfToken::class 仅出于测试目的这样做。
标签: mysql laravel api post ionic-framework