我正在使用React发送一个简单的应用程序,它向Symfony发出的API发送ajax请求。我正在开发反应app和symfony api。我从localhost:3000发送请求到localhost:8000。下面是我送ajax请求到symfony api返回没有'Access-Control-Allow-Origin'标头存在
addUser (data) {
console.log('made it')
let request = {
method: 'post',
url: 'http://127.0.0.1:8000/user/post',
data: JSON.stringify({'username': data}),
contentType: 'application/json'
}
$.ajax(request)
.done(data => this.addUserSuccess(data))
.fail(err => this.addUserFail(err))
}
这里的AJAX请求的Symmfony应用程序,接受请求照顾
/**
* Creates a new user entity.
*
* @Route("/post", name="user_new")
* @Method({"GET", "POST"})
*/
function newAction(Request $request) {
echo $request;
$body = $request->getContent();
$body = json_decode($body,true);
$username = $body['username'];
$user = new User($username);
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
return new JsonResponse($user,200,array('Access-Control-Allow-Origin'=> '*'));
}
我到目前为止我在开始的时候,正如你可以看到我创建没有密码的新用户,安全或其他任何东西我只是想让它工作,并能够从应用程序发送请求到api。这里是结果
XMLHttpRequest无法加载http://127.0.0.1:8000/user/post。对预检请求的响应不会通过访问控制检查:请求的资源上不存在“访问控制 - 允许来源”标头。因此不允许访问原产地'http://localhost:3000'。该响应的HTTP状态代码405.
我以前看过很多像这样的问题,其中一个答案是返回JsonResponse与标题,因为你可以看到它不起作用。
下面是其中一个答案,我跟着 - - Origin is not allowed by Access-Control-Allow-Origin quenstions,但不幸的是没有成功。
你能告诉我如何解决它吗?先谢谢你!
我通过大家的一些问题看,并且注意到了一些与答案,可能是适当的接受,[包括自己的答案](HTTPS:/ /stackoverflow.blog/2009/01/06/accept-your-own-answers/)。这只是一个友好的提示[接受答案](https://stackoverflow.com/help/someone-answers)如果你的问题已经解决:) – aplum