我正在开发一个API,我希望它能够在客户端使用ajax请求。我也在使用Nelmio Cors和FOS Rest。
AJAX GET正常工作。 AJAX POST将此错误抛回给我(我正在使用jQuery btw进行测试):
...
exception: [{message: "Invalid json message received",…}]
0: {message: "Invalid json message received",…}
class: "Symfony\Component\HttpKernel\Exception\BadRequestHttpException"
message: "Invalid json message received"
...
我的nelmio cors配置是这样的:
nelmio_cors:
defaults:
allow_credentials: true
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE','OPTIONS']
max_age: 3600
我的请求在正文中发送儿子数据,这是:
$.ajax({
url:"http://127.0.0.1:8000/api/agents",
type:"POST",
data:{name: "asdf"},
contentType:"application/json",
dataType:"json",
success: function(a){
console.log(a);
}
});
如果我通过http客户端执行此请求,我的网络服务工作正常。
答案 0 :(得分:1)
您请求中的json无效。
替换
data:{name: "asdf"},
通过
data:{"name": "asdf"},
然后
$.ajax({
url:"http://127.0.0.1:8000/api/agents",
type:"POST",
**data:{"name": "asdf"},**
contentType:"application/json",
dataType:"json",
success: function(a){
console.log(a);
}
});