尝试从angular 2应用程序向我的Laravel API发送帖子请求。
我的方法:
getCombinas(test)
{
this.loadedResult = false;
let body = JSON.stringify({
test: test,
});
this.http.request('testAPI', { body:body, method:'POST' })
.map((res:Response) => res.json())
.subscribe(
data => {
console.log(data);
},
error => {
console.log(error.text());
}
);
}
在我的httpd.conf(apache配置)中,我允许使用cors:
Header set Access-Control-Allow-Origin "*"
我在我的angular 2应用程序中使用了自定义请求选项类:
import {BaseRequestOptions, RequestOptions, RequestOptionsArgs, Headers} from '@angular/http';
export class CustomRequestOptions extends BaseRequestOptions {
merge(options?:RequestOptionsArgs):RequestOptions {
options.url = 'MY_API_URL/api/' + options.url;
if (options.method === 1) {
let headers = new Headers();
headers['Content-Type'] = 'application/json';
headers.append('Content-Type', 'application/json');
options.headers = headers;
}
return super.merge(options);
}
}
只有在我添加了这两行之后才会出现错误:
headers['Content-Type'] = 'application/json';
headers.append('Content-Type', 'application/json');
但是如果没有它们,我的Laravel会得到文本/简单的响应而我无法使用它。我需要JSON响应。
出了什么问题?
答案 0 :(得分:0)
如果缺少,则必须使用命令
启用apache mod_headera2enmod headers
然后重启apache
答案 1 :(得分:0)
看起来您应该另外将 Access-Control-Allow-Headers 标头写入必要的响应值。