我的休息api适用于卷曲,但在ajax中失败

时间:2015-03-05 16:09:12

标签: jquery ajax rest

卷曲我的休息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

3 个答案:

答案 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:*”是危险的,而是指定特定的域。