【发布时间】:2017-07-27 16:41:37
【问题描述】:
我正在使用 React 制作简单的应用程序,将 ajax 请求发送到使用 Symfony 制作的 API。我正在开发 react 应用程序和 symfony api。我正在从 localhost:3000 向 localhost:8000 发送请求。这是我发送的 ajax 请求
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))
}
这里是处理请求的 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。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:3000' 不允许访问。响应的 HTTP 状态代码为 405。
我以前见过很多类似这样的问题,其中一个答案是返回带有标题的 JsonResponse,你可以看到它不起作用。
这是我遵循的答案之一 - Origin is not allowed by Access-Control-Allow-Origin 但不幸的是没有成功。
你能告诉我如何解决它吗?提前谢谢!
【问题讨论】:
-
我查看了您的一些问题,并注意到其中一些问题的答案可能适合接受,including your own answers。如果您的问题已解决,这只是对accept answers 的友好提醒:)
标签: javascript php ajax symfony