卷曲我的休息api工作
curl -d "id=insertCustomer&customerName=Linoy&email=gopu@gmail.com&city=goa&address=test&country=INDIA" http://localhost:7275
当我们用ajax尝试它时,它将状态代码返回为200 ok.But no response
$.ajax({
type: 'POST',
url: 'http://localhost:7275',
data: JSON.stringify({"id":"insertCustomer","Name":"LINOY","AGE":23}),
success: function(data, textStatus, jqXHR){
alert('Stock updated successfully Status: '+textStatus); },
error: function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
}
});
在Rest服务器中,我有一个httpd.conf文件,该文件重定向到Api.php
包含函数insertCustomer
答案 0 :(得分:2)
Rest类已包含在以下代码中:
header('Access-Control-Allow-Origin: *');
这有效....:)
答案 1 :(得分:1)
因为您使用JSON.stringify所产生的调用(在curl中)看起来像:
curl -d '{"id":"insertCustomer","Name":"LINOY","AGE":23}' http://localhost:7275
因此,如果您的api真的适用于json,那么上面的调用也可以正常工作。
基于你的curl调用,看起来api不接受json,而是接受普通参数。如果是这种情况,那么您需要调整ajax请求并发送一个url编码的参数字符串:
$.ajax({
type: 'POST',
url: 'http://localhost:7275',
data: "id=insertCustomer&Name=LINOY&AGE=23",
success: function(data, textStatus, jqXHR){
alert('Stock updated successfully Status: '+textStatus); },
error: function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
}
});
如果api函数允许两者,您可能需要在请求中设置不同的内容类型(不知道Api.php是不可能知道的):
$.ajax({
type: 'POST'
contentType: 'application/json; charset=UTF-8',
....
尝试放弃" stringify"它应该没问题。
答案 2 :(得分:1)
问题是“Access-Control-Allow-Origin”标题,需要在服务器端响应api时设置。 但是将其设置为“Access-Control-Allow-Origin:*”是危险的,而是指定特定的域。